# HG changeset patch # User dlong # Date 1475025287 14400 # Node ID 78227a678cbe1e3a05224a0c5a3def3f372ffba4 # Parent b48cf809a95b66d46010a08347074c9948d196dc# Parent 46913f218c6be410283725cf3eaf6d77f1a8ffbc Merge diff -r b48cf809a95b -r 78227a678cbe jdk/src/java.base/share/classes/java/lang/Math.java --- a/jdk/src/java.base/share/classes/java/lang/Math.java Fri Sep 23 13:44:03 2016 -0700 +++ b/jdk/src/java.base/share/classes/java/lang/Math.java Tue Sep 27 21:14:47 2016 -0400 @@ -1626,7 +1626,7 @@ * * @since 9 */ - // @HotSpotIntrinsicCandidate + @HotSpotIntrinsicCandidate public static double fma(double a, double b, double c) { /* * Infinity and NaN arithmetic is not quite the same with two @@ -1743,7 +1743,7 @@ * * @since 9 */ - // @HotSpotIntrinsicCandidate + @HotSpotIntrinsicCandidate public static float fma(float a, float b, float c) { /* * Since the double format has more than twice the precision diff -r b48cf809a95b -r 78227a678cbe jdk/test/java/lang/Math/FusedMultiplyAddTests.java --- a/jdk/test/java/lang/Math/FusedMultiplyAddTests.java Fri Sep 23 13:44:03 2016 -0700 +++ b/jdk/test/java/lang/Math/FusedMultiplyAddTests.java Tue Sep 27 21:14:47 2016 -0400 @@ -221,6 +221,9 @@ {Double.MIN_VALUE, -0.0, +0.0, +0.0}, + + {1.0+Math.ulp(1.0), 1.0+Math.ulp(1.0), -1.0-2.0*Math.ulp(1.0), + Math.ulp(1.0)*Math.ulp(1.0)}, }; for (double[] testCase: testCases) @@ -344,6 +347,9 @@ {Float.MAX_VALUE, 2.0f, 1.0f, InfinityF}, + + {1.0f+Math.ulp(1.0f), 1.0f+Math.ulp(1.0f), -1.0f-2.0f*Math.ulp(1.0f), + Math.ulp(1.0f)*Math.ulp(1.0f)}, }; for (float[] testCase: testCases)