- GET_FLOAT_WORD(hx, x);
- ix = hx & 0x7fffffff;
- if (ix >= 0x43000000) { /* |x| >= 128 */
- if (ix >= 0x7f800000) {
- if (hx == 0xff800000) /* -inf */
- return 0;
- return x;
- }
- if (x >= 128) {
- STRICT_ASSIGN(float, x, x * 0x1p127);
+ ix = u.i & 0x7fffffff;
+ if (ix > 0x42fc0000) { /* |x| > 126 */
+ if (u.i >= 0x43000000 && u.i < 0x80000000) { /* x >= 128 */
+ x *= 0x1p127f;