--- old/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/IntegerDivRemNode.java 2017-12-13 08:52:39.000000000 -0800 +++ new/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/IntegerDivRemNode.java 2017-12-13 08:52:39.000000000 -0800 @@ -60,7 +60,8 @@ // Assigning canDeopt during constructor, because it must never change during lifetime of // the node. - this.canDeopt = ((IntegerStamp) getY().stamp(NodeView.DEFAULT)).contains(0); + IntegerStamp yStamp = (IntegerStamp) getY().stamp(NodeView.DEFAULT); + this.canDeopt = yStamp.contains(0) || yStamp.contains(-1); } public final Op getOp() {