- if (hx >= 0x42b17218) { /* if |x| >= 88.722839f or NaN */
- if (hx > 0x7f800000) /* NaN */
- return x;
- if (!sign) {
- /* overflow if x!=inf */
- STRICT_ASSIGN(float, x, x * 0x1p127f);
+ if (hx >= 0x42aeac50) { /* if |x| >= -87.33655f or NaN */
+ if (hx >= 0x42b17218 && !sign) { /* x >= 88.722839f */
+ /* overflow */
+ x *= 0x1p127f;