else if (FP_ILOGBNAN != INT_MAX && (hx|lx) == 0)  return INT_MAX;
else if (FP_ILOGBNAN != INT_MAX) { GET_LDOUBLE_WORDS(es,hx,lx,x); if ((hx & 0x7fffffff|lx) == 0)  return INT_MAX; }
	int __ilogbl(long double x)#else	int __ilogbl(x)	long double x;#endif{	int32_t es,hx,lx,ix;	GET_LDOUBLE_EXP(es,x);	es &= 0x7fff;	if(es==0) {	    GET_LDOUBLE_WORDS(es,hx,lx,x);	    if((hx|lx)==0)		return FP_ILOGB0;	/* ilogbl(0) = FP_ILOGB0 */	    else			/* subnormal x */		if(hx==0) {		    for (ix = -16415; lx>0; lx<<=1) ix -=1;		} else {		    for (ix = -16383; hx>0; hx<<=1) ix -=1;		}	    return ix;	}	else if (es<0x7fff) return es-0x3fff;	else if (FP_ILOGBNAN != INT_MAX && (hx|lx) == 0)	    /* ISO C99 requires ilogbl(+-Inf) == INT_MAX.  */	    return INT_MAX;	return FP_ILOGBNAN;}