libm: add fpclassify

Change-Id: Iceb773c42063eb0e3cf4a95608be7c45f6ebd1d6
diff --git a/lib/libm/sf_fpclassify.c b/lib/libm/sf_fpclassify.c
new file mode 100644
index 0000000..878457f
--- /dev/null
+++ b/lib/libm/sf_fpclassify.c
@@ -0,0 +1,29 @@
+/* Copyright (C) 2002,2007 by  Red Hat, Incorporated. All rights reserved.
+ *
+ * Permission to use, copy, modify, and distribute this software
+ * is freely granted, provided that this notice is preserved.
+ */
+
+#include "fdlibm.h"
+
+int
+__fpclassifyf (float x)
+{
+  __uint32_t w;
+
+  GET_FLOAT_WORD(w,x);
+  
+  if (w == 0x00000000 || w == 0x80000000)
+    return FP_ZERO;
+  else if ((w >= 0x00800000 && w <= 0x7f7fffff) ||
+           (w >= 0x80800000 && w <= 0xff7fffff))
+    return FP_NORMAL;
+  else if ((w >= 0x00000001 && w <= 0x007fffff) ||
+           (w >= 0x80000001 && w <= 0x807fffff))
+    return FP_SUBNORMAL;
+  else if (w == 0x7f800000 || w == 0xff800000)
+    return FP_INFINITE;
+  else
+    return FP_NAN;
+}
+