src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.api.directives.test/src/org/graalvm/compiler/api/directives/test/ProbabilityDirectiveTest.java
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.api.directives.test/src/org/graalvm/compiler/api/directives/test/ProbabilityDirectiveTest.java Fri Feb 02 10:37:48 2018 -0500
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.api.directives.test/src/org/graalvm/compiler/api/directives/test/ProbabilityDirectiveTest.java Fri Feb 02 17:28:17 2018 -0800
@@ -50,6 +50,21 @@
test("branchProbabilitySnippet", 5);
}
+ public static int branchProbabilitySnippet2(int arg) {
+ if (!GraalDirectives.injectBranchProbability(0.125, arg <= 0)) {
+ GraalDirectives.controlFlowAnchor(); // prevent removal of the if
+ return 2;
+ } else {
+ GraalDirectives.controlFlowAnchor(); // prevent removal of the if
+ return 1;
+ }
+ }
+
+ @Test
+ public void testBranchProbability2() {
+ test("branchProbabilitySnippet2", 5);
+ }
+
@Override
protected boolean checkLowTierGraph(StructuredGraph graph) {
NodeIterable<IfNode> ifNodes = graph.getNodes(IfNode.TYPE);