--- 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
--- 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)