src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop/src/org/graalvm/compiler/loop/CountedLoopInfo.java
changeset 48861 47f19ff9903c
parent 48190 25cfedf27edc
child 49451 e06f9607f370
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop/src/org/graalvm/compiler/loop/CountedLoopInfo.java	Fri Feb 02 10:37:48 2018 -0500
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop/src/org/graalvm/compiler/loop/CountedLoopInfo.java	Fri Feb 02 17:28:17 2018 -0800
@@ -73,12 +73,18 @@
         Stamp stamp = iv.valueNode().stamp(NodeView.DEFAULT);
         ValueNode range = sub(graph, end, iv.initNode());
 
+        ValueNode max;
+        ValueNode min;
         ValueNode oneDirection;
         if (iv.direction() == Direction.Up) {
             oneDirection = ConstantNode.forIntegerStamp(stamp, 1, graph);
+            max = end;
+            min = iv.initNode();
         } else {
             assert iv.direction() == Direction.Down;
             oneDirection = ConstantNode.forIntegerStamp(stamp, -1, graph);
+            max = iv.initNode();
+            min = end;
         }
         if (oneOff) {
             range = add(graph, range, oneDirection);
@@ -95,7 +101,7 @@
             return div;
         }
         ConstantNode zero = ConstantNode.forIntegerStamp(stamp, 0, graph);
-        return graph.unique(new ConditionalNode(graph.unique(new IntegerLessThanNode(zero, div)), div, zero));
+        return graph.unique(new ConditionalNode(graph.unique(new IntegerLessThanNode(max, min)), zero, div));
     }
 
     /**