On Fri, 8 Jul 2022 06:11:22 GMT, Joe Darcy <da...@openjdk.org> wrote:
> Initial implementation. test/jdk/java/lang/Float/SixteenBitFormats.java line 239: > 237: public static boolean isNaN(short binary16) { > 238: return ((binary16 & 0x7c00) == 0x7c00) // Max exponent and... > 239: && ((binary16 & 0x03ff) != 0 ); // significand > nonzero. return (binary16 & 0x7fff) > 0x7c00; is more concise test/jdk/java/lang/Float/SixteenBitFormats.java line 244: > 242: public static short negate(short binary16) { > 243: return (short)(((binary16 & 0x8000) ^ 0x8000) | // Isolate > and flip sign bit > 244: (binary16 & 0x7fff)); return (short)(binary16 ^ 0x8000); is shorter test/jdk/java/lang/Float/SixteenBitFormats.java line 263: > 261: } > 262: } > 263: } The last invocation to `Integer.compare()` is not correct. For example, if `bin16_1 = -1 `and `bin16_2 = 1`, the invocation returns 1, which is incorrect. ------------- PR: https://git.openjdk.org/jdk/pull/9422