1/*
2 * Written by J.T. Conklin <jtc@netbsd.org>.
3 * Change for long double by Ulrich Drepper <drepper@cygnus.com>.
4 * Intel i387 specific version.
5 * Public domain.
6 */
7
8#if defined(LIBM_SCCS) && !defined(lint)
9static char rcsid[] = "$NetBSD: $";
10#endif
11
12/*
13 * isinfl(x) returns 1 if x is inf, -1 if x is -inf, else 0;
14 * no branching!
15 */
16
17#include "math.h"
18#include "math_private.h"
19
20#ifdef __STDC__
21	int __isinfl(long double x)
22#else
23	int __isinfl(x)
24	long double x;
25#endif
26{
27	int32_t se,hx,lx;
28	GET_LDOUBLE_WORDS(se,hx,lx,x);
29	/* This additional ^ 0x80000000 is necessary because in Intel's
30	   internal representation of the implicit one is explicit.  */
31	lx |= (hx ^ 0x80000000) | ((se & 0x7fff) ^ 0x7fff);
32	lx |= -lx;
33	se &= 0x8000;
34	return ~(lx >> 31) & (1 - (se >> 14));
35}
36hidden_def (__isinfl)
37weak_alias (__isinfl, isinfl)
38