# HG changeset patch # User Thomas Wuerthinger # Date 1425918006 -3600 # Node ID adccf364178bcc32bb8195a60c499fdd888e4a9c # Parent 4df907480030a7ba114641cc96d31f10177b2832 Add folding for IntegerTestNode. diff -r 4df907480030 -r adccf364178b graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerTestNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerTestNode.java Mon Mar 09 15:38:33 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerTestNode.java Mon Mar 09 17:20:06 2015 +0100 @@ -72,6 +72,15 @@ @Override public TriState tryFold(Stamp xStampGeneric, Stamp yStampGeneric) { + if (xStampGeneric instanceof IntegerStamp && yStampGeneric instanceof IntegerStamp) { + IntegerStamp xStamp = (IntegerStamp) xStampGeneric; + IntegerStamp yStamp = (IntegerStamp) yStampGeneric; + if ((xStamp.upMask() & yStamp.upMask()) == 0) { + return TriState.TRUE; + } else if ((xStamp.downMask() & yStamp.downMask()) != 0) { + return TriState.FALSE; + } + } return TriState.UNKNOWN; } }