extu_ext
_DIAGASSERT(u.extu_ext.ext_exp == 0 ||
(u.extu_ext.ext_frach & 0x80000000));
if (u.extu_ext.ext_exp == 0) {
if ((u.extu_ext.ext_frach & 0x7fffffff) == 0 &&
u.extu_ext.ext_fracl == 0)
} else if (u.extu_ext.ext_exp == EXT_EXP_INFNAN) {
if ((u.extu_ext.ext_frach & 0x7fffffff) == 0 &&
u.extu_ext.ext_fracl == 0)
_DIAGASSERT(u.extu_ext.ext_exp == 0 ||
(u.extu_ext.ext_frach & 0x80000000));
if (u.extu_ext.ext_exp == EXT_EXP_INFNAN)
return (u.extu_ext.ext_exp == EXT_EXP_INFNAN &&
u.extu_ext.ext_frach == 0x80000000 && u.extu_ext.ext_fracl == 0);
return (u.extu_ext.ext_exp == EXT_EXP_INFNAN &&
(u.extu_ext.ext_frach & 0x80000000) != 0 &&
(u.extu_ext.ext_frach != 0x80000000 || u.extu_ext.ext_fracl != 0));
_DIAGASSERT(u.extu_ext.ext_zero == 0);
if (u.extu_ext.ext_exp == 0 &&
(u.extu_ext.ext_frach & 0x80000000) == 0) {
if ((u.extu_ext.ext_frach & 0x7fffffff) == 0 &&
u.extu_ext.ext_fracl == 0)
} else if (u.extu_ext.ext_exp == EXT_EXP_INFNAN) {
if ((u.extu_ext.ext_frach & 0x7fffffff) == 0 &&
u.extu_ext.ext_fracl == 0)
_DIAGASSERT(u.extu_ext.ext_zero == 0);
if (u.extu_ext.ext_exp == EXT_EXP_INFNAN)
return (u.extu_ext.ext_exp == EXT_EXP_INFNAN &&
((u.extu_ext.ext_frach & 0x7fffffff) == 0 && u.extu_ext.ext_fracl == 0));
return (u.extu_ext.ext_exp == EXT_EXP_INFNAN &&
(u.extu_ext.ext_frach != 0 || u.extu_ext.ext_fracl != 0));
if (u.extu_ext.ext_exp == 0) {
if (u.extu_ext.ext_frach == 0 && u.extu_ext.ext_fracl == 0)
} else if (u.extu_ext.ext_exp == EXT_EXP_INFNAN) {
if (u.extu_ext.ext_frach == 0 && u.extu_ext.ext_fracl == 0)
if (u.extu_ext.ext_exp == EXT_EXP_INFNAN)
return (u.extu_ext.ext_exp == EXT_EXP_INFNAN &&
(u.extu_ext.ext_frach == 0 && u.extu_ext.ext_fracl == 0));
return (u.extu_ext.ext_exp == EXT_EXP_INFNAN &&
(u.extu_ext.ext_frach != 0 || u.extu_ext.ext_fracl != 0));
_DIAGASSERT(u.extu_ext.ext_exp == 0 ||
(u.extu_ext.ext_frach & 0x80000000));
if (u.extu_ext.ext_exp == 0) {
if ((u.extu_ext.ext_frach & 0x7fffffff) == 0 &&
u.extu_ext.ext_fracl == 0)
} else if (u.extu_ext.ext_exp == EXT_EXP_INFNAN) {
if ((u.extu_ext.ext_frach & 0x7fffffff) == 0 &&
u.extu_ext.ext_fracl == 0)
_DIAGASSERT(u.extu_ext.ext_exp == 0 ||
(u.extu_ext.ext_frach & 0x80000000));
if (u.extu_ext.ext_exp == EXT_EXP_INFNAN)
return (u.extu_ext.ext_exp == EXT_EXP_INFNAN &&
u.extu_ext.ext_frach == 0x80000000 && u.extu_ext.ext_fracl == 0);
return (u.extu_ext.ext_exp == EXT_EXP_INFNAN &&
(u.extu_ext.ext_frach & 0x80000000) != 0 &&
(u.extu_ext.ext_frach != 0x80000000 || u.extu_ext.ext_fracl != 0));
*sign = u.extu_ext.ext_sign;
*decpt = u.extu_ext.ext_exp - LDBL_ADJ;
*decpt = u.extu_ext.ext_exp - (514 + LDBL_ADJ);
*s = u.extu_ext.ext_fracl & 0xf;
u.extu_ext.ext_fracl >>= 4;
*s = u.extu_ext.ext_frachm & 0xf;
u.extu_ext.ext_frachm >>= 4;
*s = u.extu_ext.ext_fraclm & 0xf;
u.extu_ext.ext_fraclm >>= 4;
*s = u.extu_ext.ext_frach & 0xf;
u.extu_ext.ext_frach >>= 4;
*s = u.extu_ext.ext_frach | (1U << ((LDBL_MANT_DIG - 1) % 4));
dorounding(s0, ndigits, u.extu_ext.ext_sign, decpt);
*sign = u.extu_ext.ext_sign;
be = u.extu_ext.ext_exp - (LDBL_MAX_EXP - 1) - (LDBL_MANT_DIG - 1);
extu.extu_ext.ext_exp - EXT_EXP_BIAS,
extu.extu_ext.ext_sign != 0,
extu.extu_ext.ext_exp - EXT_EXP_BIAS,
extu.extu_ext.ext_sign != 0,
if (u.extu_ext.ext_exp == 0) {
if (u.extu_ext.ext_frach == 0
&& u.extu_ext.ext_frachm == 0
&& u.extu_ext.ext_fraclm == 0
&& u.extu_ext.ext_fracl == 0)
} else if (u.extu_ext.ext_exp == EXT_EXP_INFNAN) {
if (u.extu_ext.ext_frach == 0
&& u.extu_ext.ext_frachm == 0
&& u.extu_ext.ext_fraclm == 0
&& u.extu_ext.ext_fracl == 0)
if (u.extu_ext.ext_exp == EXT_EXP_INFNAN)
return u.extu_ext.ext_exp == EXT_EXP_INFNAN
&& u.extu_ext.ext_frach == 0
&& u.extu_ext.ext_frachm == 0
&& u.extu_ext.ext_fraclm == 0
&& u.extu_ext.ext_fracl == 0;
return u.extu_ext.ext_exp == EXT_EXP_INFNAN
&& (u.extu_ext.ext_frach != 0
|| u.extu_ext.ext_frachm != 0
|| u.extu_ext.ext_fraclm != 0
|| u.extu_ext.ext_fracl != 0);
return (u.extu_ext.ext_sign == 1);
#define extu_exp extu_ext.ext_exp
#define extu_sign extu_ext.ext_sign
#define extu_frac extu_ext.ext_frac
struct ieee_ext extu_ext;
ux.extu_ext.ext_sign = uy.extu_ext.ext_sign;
ux.extu_ext.ext_sign = 0;
bits_lost = -u.extu_ext.ext_exp - scale + 1;
if ((bits_lost != 1) ^ (int)(u.extu_ext.ext_fracl & 1))
if ((u.extu_ext.ext_fracl & 1) == 0)
u[0].extu_ext.ext_frach &= ~0x80000000;
u[1].extu_ext.ext_frach &= ~0x80000000;
if (u[0].extu_ext.ext_exp == EXT_EXP_INFNAN &&
(u[0].extu_ext.ext_frach | u[0].extu_ext.ext_fracl) != 0)
if (u[1].extu_ext.ext_exp == EXT_EXP_INFNAN &&
(u[1].extu_ext.ext_frach | u[1].extu_ext.ext_fracl) != 0)
if (u[0].extu_ext.ext_sign != u[1].extu_ext.ext_sign)
return (u[0].extu_ext.ext_sign ? y : x);
u[0].extu_ext.ext_frach &= ~0x80000000;
u[1].extu_ext.ext_frach &= ~0x80000000;
if (u[0].extu_ext.ext_exp == EXT_EXP_INFNAN &&
(u[0].extu_ext.ext_frach | u[0].extu_ext.ext_fracl) != 0)
if (u[1].extu_ext.ext_exp == EXT_EXP_INFNAN &&
(u[1].extu_ext.ext_frach | u[1].extu_ext.ext_fracl) != 0)
if (u[0].extu_ext.ext_sign != u[1].extu_ext.ext_sign)
return (u[1].extu_ext.ext_sign ? y : x);
switch (u.extu_ext.ext_exp) {
if ((u.extu_ext.ext_fracl | u.extu_ext.ext_frach) == 0) {
*ex = u.extu_ext.ext_exp - 0x4200;
u.extu_ext.ext_exp = 0x3ffe;
*ex = u.extu_ext.ext_exp - 0x3ffe;
u.extu_ext.ext_exp = 0x3ffe;
if (u.extu_ext.ext_exp == EXT_EXP_INFNAN) {
if (u.extu_ext.ext_exp == 0) {
return u.extu_ext.ext_exp - EXT_EXP_BIAS - LDBL_MANT_DIG - 1;
return u.extu_ext.ext_exp - EXT_EXP_BIAS;
if (u.extu_ext.ext_exp == EXT_EXP_INFNAN)
if (u.extu_ext.ext_exp == 0) {
return u.extu_ext.ext_exp - EXT_EXP_BIAS - LDBL_MANT_DIG - 1;
return u.extu_ext.ext_exp - EXT_EXP_BIAS;
uy.extu_ext.ext_frach &= ~LDBL_NBIT;
(uy.extu_ext.ext_exp == EXT_EXP_INFNAN &&
(uy.extu_ext.ext_frach | uy.extu_ext.ext_fracl) != 0))
SET_FLOAT_WORD(x,(uy.extu_ext.ext_sign<<31)|1);/* return +-minsubnormal */
u.extu_ext.ext_exp = n;
if (u.extu_ext.ext_exp == EXT_EXP_INFNAN)
if (u.extu_ext.ext_exp == 0) {
n += u.extu_ext.ext_exp;
u.extu_ext.ext_exp = n;
struct ieee_ext extu_ext;
#define extu_exp extu_ext.ext_exp
#define extu_sign extu_ext.ext_sign
#define extu_fracl extu_ext.ext_fracl
#define extu_frach extu_ext.ext_frach
(a)[0] = (uint32_t)(u).extu_ext.ext_fracl; \
(a)[1] = (uint32_t)(u).extu_ext.ext_frach; \
struct ieee_ext extu_ext;
#define extu_exp extu_ext.ext_exp
#define extu_sign extu_ext.ext_sign
#define extu_fracl extu_ext.ext_fracl
#define extu_frach extu_ext.ext_frach
(a)[0] = (uint32_t)(u).extu_ext.ext_fracl; \
(a)[1] = (uint32_t)(u).extu_ext.ext_frach; \
(a)[0] = (uint32_t)((u).extu_ext.ext_fracl >> 0); \
(a)[1] = (uint32_t)((u).extu_ext.ext_fracl >> 32); \
(a)[2] = (uint32_t)((u).extu_ext.ext_frach >> 0); \
(a)[3] = (uint32_t)((u).extu_ext.ext_frach >> 32); \
struct ieee_ext extu_ext;
#define extu_exp extu_ext.ext_exp
#define extu_sign extu_ext.ext_sign
#define extu_fracl extu_ext.ext_fracl
#define extu_frach extu_ext.ext_frach