< 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 >