diff -r 1a8d65e71a66 -r aec7bf35d6f5 src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/StandardMethodSubstitutionsTest.java --- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/StandardMethodSubstitutionsTest.java Thu Oct 31 14:23:06 2019 -0700 +++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/StandardMethodSubstitutionsTest.java Thu Oct 31 16:54:16 2019 -0700 @@ -31,6 +31,8 @@ import org.graalvm.compiler.nodes.StructuredGraph; import org.graalvm.compiler.nodes.calc.AbsNode; import org.graalvm.compiler.nodes.calc.ReinterpretNode; +import org.graalvm.compiler.replacements.amd64.AMD64CountLeadingZerosNode; +import org.graalvm.compiler.replacements.amd64.AMD64CountTrailingZerosNode; import org.graalvm.compiler.replacements.nodes.BitCountNode; import org.graalvm.compiler.replacements.nodes.BitScanForwardNode; import org.graalvm.compiler.replacements.nodes.BitScanReverseNode; @@ -132,7 +134,7 @@ return Math.sqrt(value) + Math.log(value) + Math.log10(value) + Math.sin(value) + Math.cos(value) + Math.tan(value); } - public void testSubstitution(String testMethodName, Class intrinsicClass, Class holder, String methodName, boolean optional, Object... args) { + public void testSubstitution(String testMethodName, Class holder, String methodName, boolean optional, Object[] args, Class... intrinsicClasses) { ResolvedJavaMethod realJavaMethod = getResolvedJavaMethod(holder, methodName); ResolvedJavaMethod testJavaMethod = getResolvedJavaMethod(testMethodName); StructuredGraph graph = testGraph(testMethodName); @@ -140,7 +142,7 @@ // Check to see if the resulting graph contains the expected node StructuredGraph replacement = getReplacements().getSubstitution(realJavaMethod, -1, false, null, graph.getOptions()); if (replacement == null && !optional) { - assertInGraph(graph, intrinsicClass); + assertInGraph(graph, intrinsicClasses); } for (Object l : args) { @@ -159,7 +161,7 @@ public void testCharSubstitutions() { Object[] args = new Character[]{Character.MIN_VALUE, (char) -1, (char) 0, (char) 1, Character.MAX_VALUE}; - testSubstitution("charReverseBytes", ReverseBytesNode.class, Character.class, "reverseBytes", false, args); + testSubstitution("charReverseBytes", Character.class, "reverseBytes", false, args, ReverseBytesNode.class); } public static char charReverseBytes(char value) { @@ -183,7 +185,7 @@ public void testShortSubstitutions() { Object[] args = new Short[]{Short.MIN_VALUE, -1, 0, 1, Short.MAX_VALUE}; - testSubstitution("shortReverseBytes", ReverseBytesNode.class, Short.class, "reverseBytes", false, args); + testSubstitution("shortReverseBytes", Short.class, "reverseBytes", false, args, ReverseBytesNode.class); } public static short shortReverseBytes(short value) { @@ -207,10 +209,10 @@ public void testIntegerSubstitutions() { Object[] args = new Object[]{Integer.MIN_VALUE, -1, 0, 1, Integer.MAX_VALUE}; - testSubstitution("integerReverseBytes", ReverseBytesNode.class, Integer.class, "reverseBytes", false, args); - testSubstitution("integerNumberOfLeadingZeros", BitScanReverseNode.class, Integer.class, "numberOfLeadingZeros", true, args); - testSubstitution("integerNumberOfTrailingZeros", BitScanForwardNode.class, Integer.class, "numberOfTrailingZeros", false, args); - testSubstitution("integerBitCount", BitCountNode.class, Integer.class, "bitCount", true, args); + testSubstitution("integerReverseBytes", Integer.class, "reverseBytes", false, args, ReverseBytesNode.class); + testSubstitution("integerNumberOfLeadingZeros", Integer.class, "numberOfLeadingZeros", true, args, BitScanReverseNode.class, AMD64CountLeadingZerosNode.class); + testSubstitution("integerNumberOfTrailingZeros", Integer.class, "numberOfTrailingZeros", false, args, BitScanForwardNode.class, AMD64CountTrailingZerosNode.class); + testSubstitution("integerBitCount", Integer.class, "bitCount", true, args, BitCountNode.class); } public static int integerReverseBytes(int value) { @@ -233,10 +235,10 @@ public void testLongSubstitutions() { Object[] args = new Object[]{Long.MIN_VALUE, -1L, 0L, 1L, Long.MAX_VALUE}; - testSubstitution("longReverseBytes", ReverseBytesNode.class, Long.class, "reverseBytes", false, args); - testSubstitution("longNumberOfLeadingZeros", BitScanReverseNode.class, Long.class, "numberOfLeadingZeros", true, args); - testSubstitution("longNumberOfTrailingZeros", BitScanForwardNode.class, Long.class, "numberOfTrailingZeros", false, args); - testSubstitution("longBitCount", BitCountNode.class, Long.class, "bitCount", true, args); + testSubstitution("longReverseBytes", Long.class, "reverseBytes", false, args, ReverseBytesNode.class); + testSubstitution("longNumberOfLeadingZeros", Long.class, "numberOfLeadingZeros", true, args, BitScanReverseNode.class, AMD64CountLeadingZerosNode.class); + testSubstitution("longNumberOfTrailingZeros", Long.class, "numberOfTrailingZeros", false, args, BitScanForwardNode.class, AMD64CountTrailingZerosNode.class); + testSubstitution("longBitCount", Long.class, "bitCount", true, args, BitCountNode.class); } public static long longReverseBytes(long value) {