8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24 /*
25 * @test
26 * @bug 5037596
27 * @summary Verify bitwise conversion works for non-canonical NaN values
28 * @author Joseph D. Darcy
29 */
30
31 import static java.lang.Float.*;
32 import static sun.misc.FloatConsts.*;
33
34 public class BitwiseConversion {
35 static int testNanCase(int x) {
36 int errors = 0;
37 // Strip out sign and exponent bits
38 int y = x & SIGNIF_BIT_MASK;
39
40 float values[] = {
41 intBitsToFloat(EXP_BIT_MASK | y),
42 intBitsToFloat(SIGN_BIT_MASK | EXP_BIT_MASK | y)
43 };
44
45 for(float value: values) {
46 if (!isNaN(value)) {
47 throw new RuntimeException("Invalid input " + y +
48 "yielded non-NaN" + value);
49 }
50 int converted = floatToIntBits(value);
51 if (converted != 0x7fc00000) {
52 errors++;
|
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24 /*
25 * @test
26 * @bug 5037596
27 * @summary Verify bitwise conversion works for non-canonical NaN values
28 * @library /lib/testlibrary
29 * @build jdk.testlibrary.FloatUtils
30 * @run main BitwiseConversion
31 * @author Joseph D. Darcy
32 */
33
34 import static java.lang.Float.*;
35 import static jdk.testlibrary.FloatUtils.*;
36
37 public class BitwiseConversion {
38 static int testNanCase(int x) {
39 int errors = 0;
40 // Strip out sign and exponent bits
41 int y = x & SIGNIF_BIT_MASK;
42
43 float values[] = {
44 intBitsToFloat(EXP_BIT_MASK | y),
45 intBitsToFloat(SIGN_BIT_MASK | EXP_BIT_MASK | y)
46 };
47
48 for(float value: values) {
49 if (!isNaN(value)) {
50 throw new RuntimeException("Invalid input " + y +
51 "yielded non-NaN" + value);
52 }
53 int converted = floatToIntBits(value);
54 if (converted != 0x7fc00000) {
55 errors++;
|