On Thu, 21 Jul 2022 21:22:19 GMT, Joe Darcy <da...@openjdk.org> wrote:
>> Initial implementation. > > Joe Darcy has updated the pull request with a new target base due to a merge > or a rebase. The incremental webrev excludes the unrelated changes brought in > by the merge/rebase. The pull request contains 20 additional commits since > the last revision: > > - Method rename. > - Merge branch 'master' into JDK-8289551 > - Respond to review feedback; improve tests. > - Add NaN test. > - Preserve NaN sign bit. > - Respond to review feedback. > - Correct carry-out bug; add full binade test. > - Improve NaN significand fidelity; refine tests. > - Partial implementation of review feedback; test refinement. > - Merge branch 'master' into JDK-8289551 > - ... and 10 more: https://git.openjdk.org/jdk/compare/6cc2c3a9...9b060185 src/java.base/share/classes/java/lang/Float.java line 1141: > 1139: // propagate all the way up, take the bottom 11 bits > 1140: // rather than bottom 10 bits. Adding this value, > 1141: // rather than OR'ing htis value, will cause the right `htis` -> `this` src/java.base/share/classes/java/lang/Float.java line 1173: > 1171: int sticky = doppel & 0x0000_0fff; > 1172: > 1173: if (round != 0 && (lsb != 0 || sticky != 0 )) { You may want to reverse the order of `(lsb != 0 || sticky != 0)` to `(sticky != 0 || lsb != 0)` to improve the likelihood that the evaluation of `||` does not need to evaluate its right-hand side. Statistically, `sticky != 0` has a much higher chance to evaluate to `true` than `lsb != 0`. ------------- PR: https://git.openjdk.org/jdk/pull/9422