--- old/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/BitScanReverseNode.java 2014-11-17 20:38:12.000000000 -0800 +++ new/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/BitScanReverseNode.java 2014-11-17 20:38:12.000000000 -0800 @@ -55,7 +55,8 @@ long mask = CodeUtil.mask(valueStamp.getBits()); int lastAlwaysSetBit = scan(valueStamp.downMask() & mask); if (lastAlwaysSetBit == -1) { - min = -1; + int firstMaybeSetBit = BitScanForwardNode.scan(valueStamp.upMask() & mask); + min = firstMaybeSetBit; } else { min = lastAlwaysSetBit; }