xref: /linux/tools/memory-model/litmus-tests/SB+poonceonces.litmus (revision c532de5a67a70f8533d495f8f2aaa9a0491c3ad0)
1C SB+poonceonces
2
3(*
4 * Result: Sometimes
5 *
6 * This litmus test demonstrates that at least some ordering is required
7 * to order the store-buffering pattern, where each process writes to the
8 * variable that the preceding process reads.
9 *)
10
11{}
12
13P0(int *x, int *y)
14{
15	int r0;
16
17	WRITE_ONCE(*x, 1);
18	r0 = READ_ONCE(*y);
19}
20
21P1(int *x, int *y)
22{
23	int r0;
24
25	WRITE_ONCE(*y, 1);
26	r0 = READ_ONCE(*x);
27}
28
29exists (0:r0=0 /\ 1:r0=0)
30