< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/IntegerBelowNode.java

Print this page
rev 52509 : [mq]: graal

@@ -83,10 +83,28 @@
             assert newX.stamp(NodeView.DEFAULT) instanceof IntegerStamp && newY.stamp(NodeView.DEFAULT) instanceof IntegerStamp;
             return new IntegerBelowNode(newX, newY);
         }
 
         @Override
+        protected LogicNode findSynonym(ValueNode forX, ValueNode forY, NodeView view) {
+            LogicNode result = super.findSynonym(forX, forY, view);
+            if (result != null) {
+                return result;
+            }
+            if (forX.stamp(view) instanceof IntegerStamp) {
+                assert forY.stamp(view) instanceof IntegerStamp;
+                int bits = ((IntegerStamp) forX.stamp(view)).getBits();
+                assert ((IntegerStamp) forY.stamp(view)).getBits() == bits;
+                LogicNode logic = canonicalizeRangeFlip(forX, forY, bits, false, view);
+                if (logic != null) {
+                    return logic;
+                }
+            }
+            return null;
+        }
+
+        @Override
         protected long upperBound(IntegerStamp stamp) {
             return stamp.unsignedUpperBound();
         }
 
         @Override
< prev index next >