Fix LP64 libm for 128-bit long doubles

* reworked amd64/_fpmath.h and arm64/_fpmath.h to support 128-bit long
doubles.
* improved tests to cover long double cases
* made modfl an alias for LP32

Tests pass on x86, x86_64, arm, arm64 and mips.

Bug: 12921273

Change-Id: Ibe39acde57972447a8950fa45b1e702acc68ebeb
diff --git a/libm/fpmath.h b/libm/fpmath.h
index f3753c1..a7c612c 100644
--- a/libm/fpmath.h
+++ b/libm/fpmath.h
@@ -27,6 +27,9 @@
  * $FreeBSD: src/lib/libc/include/fpmath.h,v 1.3 2005/02/06 03:23:31 das Exp $
  */
 
+#ifndef _FPMATH_
+#define _FPMATH_
+
 #include <endian.h>
 #include "_fpmath.h"
 
@@ -76,9 +79,15 @@
  * Android works around those cases by replacing the broken functions with our own trivial stubs
  * that call the regular "double" function.
  */
+#ifndef __LP64__
+
 #define __fpclassifyl __broken__fpclassify
 #define __isfinitel __broken__isfinitel
 #define __isinfl __broken__isinfl
 #define __isnanl __broken__isnanl
 #define __isnormall __broken__isnormall
 #define __signbitl __broken_signbitl
+
+#endif // __LP64__
+
+#endif // _FPMATH_