1 /* Copyright (C) 2002, 2007 by Red Hat, Incorporated. All rights reserved.
2 *
3 * Permission to use, copy, modify, and distribute this software
4 * is freely granted, provided that this notice is preserved.
5 */
6
7 int
__fpclassifyl(long double x)8 __fpclassifyl (long double x)
9 {
10 u_int32_t hx,lx,esx;
11
12 GET_LDOUBLE_WORDS(esx,hx,lx,x);
13
14 esx &= 0x7fff;
15 if (esx == 0 && hx == 0 && lx == 0)
16 return FP_ZERO;
17 else if (esx == 0)
18 /* zero is already handled above */
19 return FP_SUBNORMAL;
20 else if (esx < 0x7fff)
21 return FP_NORMAL;
22 else if (hx == LDBL_NBIT_INF && lx == 0)
23 return FP_INFINITE;
24 else
25 return FP_NAN;
26 }
27
28