Merge "Remove obsolete hacks for the fabs() family."
diff --git a/libm/builtins.cpp b/libm/builtins.cpp
index 7487323..cf00f52 100644
--- a/libm/builtins.cpp
+++ b/libm/builtins.cpp
@@ -18,32 +18,9 @@
 
 #include "fpmath.h"
 
-double fabs(double x) {
-#if __arm__
-  // Both Clang and GCC insist on moving r0/r1 into a double register
-  // and using fabs where bit-twiddling would be a better choice.
-  // They get fabsf right, but we need to be careful in fabsl too.
-  IEEEd2bits u;
-  u.d = x;
-  u.bits.sign = 0;
-  return u.d;
-#else
-  return __builtin_fabs(x);
-#endif
-}
-
-float fabsf(float x) {
-  return __builtin_fabsf(x);
-}
-
-#if defined(__LP64__)
+double fabs(double x) { return __builtin_fabs(x); }
+float fabsf(float x) { return __builtin_fabsf(x); }
 long double fabsl(long double x) { return __builtin_fabsl(x); }
-#else
-long double fabsl(long double x) {
-  // Don't use __builtin_fabs here because of ARM. (See fabs above.)
-  return fabs(x);
-}
-#endif
 
 #if defined(__aarch64__)
 float ceilf(float x) { return __builtin_ceilf(x); }