libm: remove hand-written assembler for arm32 too.

The clang builtins for arm32 give us identical code to what we had for
sqrt()/sqrtf(), and significantly better (neon) code for
floor()/floorf() than the integer-only implementations we had.

Test: llvm-objdump
Change-Id: I224bcfcf4739a80e1a7cdd07b0b1fa232fdf2dab
diff --git a/libm/builtins.cpp b/libm/builtins.cpp
index 256436e..99758ff 100644
--- a/libm/builtins.cpp
+++ b/libm/builtins.cpp
@@ -32,9 +32,12 @@
 float copysignf(float x, float y) { return __builtin_copysignf(x, y); }
 #endif
 
-#if defined(__aarch64__)
+#if defined(__arm__) || defined(__aarch64__)
 float floorf(float x) { return __builtin_floorf(x); }
 double floor(double x) { return __builtin_floor(x); }
+#if defined(__ILP32__)
+__weak_reference(floor, floorl);
+#endif
 #endif
 
 #if defined(__aarch64__) || defined(__riscv)
@@ -66,9 +69,12 @@
 double round(double x) { return __builtin_round(x); }
 #endif
 
-#if defined(__aarch64__) || defined(__riscv)
+#if defined(__arm__) || defined(__aarch64__) || defined(__riscv)
 float sqrtf(float x) { return __builtin_sqrtf(x); }
 double sqrt(double x) { return __builtin_sqrt(x); }
+#if defined(__ILP32__)
+__weak_reference(sqrt, sqrtl);
+#endif
 #endif
 
 #if defined(__aarch64__)