org.openjdk.jcstress.tests.fences.varHandles.LoadStoreFenceTest1.FullFenceDouble

Tests VarHandle methods which take effect of load store fence.

[1]

JVM options: [-server, -XX:-TieredCompilation] Iterations: 5 Time: 200

Observed state Occurrence Expectation Interpretation
.*, 0.0 0 ACCEPTABLE_SPEC Non-atomic access detected, allowed by spec, r2 only can be assigned to 0.
0.0, 0.0 1244451 ACCEPTABLE load var in actor2 before store 1.39067116124321E-309 to var in actor1, all results are 0.0
0.0, 1.39067116124321E-309 0 FORBIDDEN this won't happen even if load x after store var because only if r1 = 1.39067116124321E-309 x may be assigned to 1.39067116124321E-309 and then r2 can be 1.39067116124321E-309 from x.
1.39067116124321E-309, 0.0 470059 ACCEPTABLE store 1.39067116124321E-309 to var in actor1 before load var in actor2
1.39067116124321E-309, 1.39067116124321E-309 0 FORBIDDEN can't load x after store var in actor1.

JVM options: [-XX:TieredStopAtLevel=1] Iterations: 5 Time: 200

Observed state Occurrence Expectation Interpretation
.*, 0.0 0 ACCEPTABLE_SPEC Non-atomic access detected, allowed by spec, r2 only can be assigned to 0.
0.0, 0.0 2171901 ACCEPTABLE load var in actor2 before store 1.39067116124321E-309 to var in actor1, all results are 0.0
0.0, 1.39067116124321E-309 0 FORBIDDEN this won't happen even if load x after store var because only if r1 = 1.39067116124321E-309 x may be assigned to 1.39067116124321E-309 and then r2 can be 1.39067116124321E-309 from x.
1.39067116124321E-309, 0.0 278369 ACCEPTABLE store 1.39067116124321E-309 to var in actor1 before load var in actor2
1.39067116124321E-309, 1.39067116124321E-309 0 FORBIDDEN can't load x after store var in actor1.

JVM options: [-server, -XX:-TieredCompilation, -XX:+UnlockDiagnosticVMOptions, -XX:+StressLCM, -XX:+StressGCM] Iterations: 5 Time: 200

Observed state Occurrence Expectation Interpretation
.*, 0.0 0 ACCEPTABLE_SPEC Non-atomic access detected, allowed by spec, r2 only can be assigned to 0.
0.0, 0.0 2194619 ACCEPTABLE load var in actor2 before store 1.39067116124321E-309 to var in actor1, all results are 0.0
0.0, 1.39067116124321E-309 0 FORBIDDEN this won't happen even if load x after store var because only if r1 = 1.39067116124321E-309 x may be assigned to 1.39067116124321E-309 and then r2 can be 1.39067116124321E-309 from x.
1.39067116124321E-309, 0.0 395181 ACCEPTABLE store 1.39067116124321E-309 to var in actor1 before load var in actor2
1.39067116124321E-309, 1.39067116124321E-309 0 FORBIDDEN can't load x after store var in actor1.

JVM options: [-server] Iterations: 5 Time: 200

Observed state Occurrence Expectation Interpretation
.*, 0.0 0 ACCEPTABLE_SPEC Non-atomic access detected, allowed by spec, r2 only can be assigned to 0.
0.0, 0.0 1001651 ACCEPTABLE load var in actor2 before store 1.39067116124321E-309 to var in actor1, all results are 0.0
0.0, 1.39067116124321E-309 0 FORBIDDEN this won't happen even if load x after store var because only if r1 = 1.39067116124321E-309 x may be assigned to 1.39067116124321E-309 and then r2 can be 1.39067116124321E-309 from x.
1.39067116124321E-309, 0.0 277979 ACCEPTABLE store 1.39067116124321E-309 to var in actor1 before load var in actor2
1.39067116124321E-309, 1.39067116124321E-309 0 FORBIDDEN can't load x after store var in actor1.

JVM options: [-client] Iterations: 5 Time: 200

Observed state Occurrence Expectation Interpretation
.*, 0.0 0 ACCEPTABLE_SPEC Non-atomic access detected, allowed by spec, r2 only can be assigned to 0.
0.0, 0.0 740830 ACCEPTABLE load var in actor2 before store 1.39067116124321E-309 to var in actor1, all results are 0.0
0.0, 1.39067116124321E-309 0 FORBIDDEN this won't happen even if load x after store var because only if r1 = 1.39067116124321E-309 x may be assigned to 1.39067116124321E-309 and then r2 can be 1.39067116124321E-309 from x.
1.39067116124321E-309, 0.0 193500 ACCEPTABLE store 1.39067116124321E-309 to var in actor1 before load var in actor2
1.39067116124321E-309, 1.39067116124321E-309 0 FORBIDDEN can't load x after store var in actor1.

JVM options: [-Xint] Iterations: 5 Time: 200

Observed state Occurrence Expectation Interpretation
.*, 0.0 0 ACCEPTABLE_SPEC Non-atomic access detected, allowed by spec, r2 only can be assigned to 0.
0.0, 0.0 75985 ACCEPTABLE load var in actor2 before store 1.39067116124321E-309 to var in actor1, all results are 0.0
0.0, 1.39067116124321E-309 0 FORBIDDEN this won't happen even if load x after store var because only if r1 = 1.39067116124321E-309 x may be assigned to 1.39067116124321E-309 and then r2 can be 1.39067116124321E-309 from x.
1.39067116124321E-309, 0.0 7535 ACCEPTABLE store 1.39067116124321E-309 to var in actor1 before load var in actor2
1.39067116124321E-309, 1.39067116124321E-309 0 FORBIDDEN can't load x after store var in actor1.

JVM options: [-client, -XX:-TieredCompilation] Iterations: 5 Time: 200

Observed state Occurrence Expectation Interpretation
.*, 0.0 0 ACCEPTABLE_SPEC Non-atomic access detected, allowed by spec, r2 only can be assigned to 0.
0.0, 0.0 1155860 ACCEPTABLE load var in actor2 before store 1.39067116124321E-309 to var in actor1, all results are 0.0
0.0, 1.39067116124321E-309 0 FORBIDDEN this won't happen even if load x after store var because only if r1 = 1.39067116124321E-309 x may be assigned to 1.39067116124321E-309 and then r2 can be 1.39067116124321E-309 from x.
1.39067116124321E-309, 0.0 583230 ACCEPTABLE store 1.39067116124321E-309 to var in actor1 before load var in actor2
1.39067116124321E-309, 1.39067116124321E-309 0 FORBIDDEN can't load x after store var in actor1.

JVM options: [-server, -XX:+UnlockDiagnosticVMOptions, -XX:+StressLCM, -XX:+StressGCM] Iterations: 5 Time: 200

Observed state Occurrence Expectation Interpretation
.*, 0.0 0 ACCEPTABLE_SPEC Non-atomic access detected, allowed by spec, r2 only can be assigned to 0.
0.0, 0.0 1270717 ACCEPTABLE load var in actor2 before store 1.39067116124321E-309 to var in actor1, all results are 0.0
0.0, 1.39067116124321E-309 0 FORBIDDEN this won't happen even if load x after store var because only if r1 = 1.39067116124321E-309 x may be assigned to 1.39067116124321E-309 and then r2 can be 1.39067116124321E-309 from x.
1.39067116124321E-309, 0.0 333883 ACCEPTABLE store 1.39067116124321E-309 to var in actor1 before load var in actor2
1.39067116124321E-309, 1.39067116124321E-309 0 FORBIDDEN can't load x after store var in actor1.