# HG changeset patch # User Tom Rodriguez # Date 1406162366 25200 # Node ID 86eee67947137a429d087987c2878cf514c3c370 # Parent c62c1e0060cce9bb09ac9465d3a97f55b87254a7 BitScanReverseNode stamp tests should only be used with BitScanReverseNode diff -r c62c1e0060cc -r 86eee6794713 graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/BitOpNodesTest.java --- a/graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/BitOpNodesTest.java Wed Jul 23 17:36:15 2014 -0700 +++ b/graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/BitOpNodesTest.java Wed Jul 23 17:39:26 2014 -0700 @@ -33,6 +33,7 @@ import com.oracle.graal.phases.common.*; import com.oracle.graal.phases.common.inlining.*; import com.oracle.graal.phases.tiers.*; +import com.oracle.graal.replacements.nodes.*; public class BitOpNodesTest extends GraalCompilerTest { @@ -186,8 +187,10 @@ @Test public void testScanReverseInt() { - ValueNode result = parseAndInline("scanReverseIntSnippet"); - Assert.assertEquals(StampFactory.forInteger(Kind.Int, 16, 20), result.stamp()); + ValueNode result = parseAndInline("scanReverseIntSnippet", BitScanReverseNode.class); + if (result != null) { + Assert.assertEquals(StampFactory.forInteger(Kind.Int, 16, 20), result.stamp()); + } } public static int scanReverseLongConstantSnippet() { @@ -208,8 +211,10 @@ @Test public void testScanReverseLong() { - ValueNode result = parseAndInline("scanReverseLongSnippet"); - Assert.assertEquals(StampFactory.forInteger(Kind.Int, 48, 64), result.stamp()); + ValueNode result = parseAndInline("scanReverseLongSnippet", BitScanReverseNode.class); + if (result != null) { + Assert.assertEquals(StampFactory.forInteger(Kind.Int, 48, 64), result.stamp()); + } } public static int scanReverseLongEmptySnippet(long v) { @@ -220,11 +225,17 @@ @Test public void testScanReverseLongEmpty() { - ValueNode result = parseAndInline("scanReverseLongEmptySnippet"); - Assert.assertEquals(StampFactory.forInteger(Kind.Int, 24, 64), result.stamp()); + ValueNode result = parseAndInline("scanReverseLongEmptySnippet", BitScanReverseNode.class); + if (result != null) { + Assert.assertEquals(StampFactory.forInteger(Kind.Int, 24, 64), result.stamp()); + } } private ValueNode parseAndInline(String name) { + return parseAndInline(name, null); + } + + private ValueNode parseAndInline(String name, Class requiredClass) { StructuredGraph graph = parse(name); HighTierContext context = new HighTierContext(getProviders(), new Assumptions(false), null, getDefaultGraphBuilderSuite(), OptimisticOptimizations.NONE); CanonicalizerPhase canonicalizer = new CanonicalizerPhase(true); @@ -232,6 +243,11 @@ new InliningPhase(canonicalizer).apply(graph, context); canonicalizer.apply(graph, context); Assert.assertEquals(1, graph.getNodes(ReturnNode.class).count()); + if (requiredClass != null) { + if (graph.getNodes().filter(requiredClass).count() == 0) { + return null; + } + } return graph.getNodes(ReturnNode.class).first().result(); } }