< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop/src/org/graalvm/compiler/loop/CountedLoopInfo.java

Print this page

        

*** 81,91 **** } if (oneOff) { range = add(graph, range, oneDirection); } // round-away-from-zero divison: (range + stride -/+ 1) / stride ! ValueNode denominator = add(graph, sub(graph, range, oneDirection), iv.strideNode()); ValueNode div = divBefore(graph, loop.entryPoint(), denominator, iv.strideNode()); if (assumePositive) { return div; } --- 81,95 ---- } if (oneOff) { range = add(graph, range, oneDirection); } // round-away-from-zero divison: (range + stride -/+ 1) / stride ! ValueNode denominator = range; ! if (!oneDirection.stamp().equals(iv.strideNode().stamp())) { ! ValueNode subedRanged = sub(graph, range, oneDirection); ! denominator = add(graph, subedRanged, iv.strideNode()); ! } ValueNode div = divBefore(graph, loop.entryPoint(), denominator, iv.strideNode()); if (assumePositive) { return div; }
< prev index next >