Move the copysign() family over to builtins all the time.

Test: llvm-objdump -d
Change-Id: Ic65250652362fd69bda31605b215d1a587cb5bce
diff --git a/libm/Android.bp b/libm/Android.bp
index 837a061..31c8756 100644
--- a/libm/Android.bp
+++ b/libm/Android.bp
@@ -106,8 +106,6 @@
         "upstream-freebsd/lib/msun/src/s_conj.c",
         "upstream-freebsd/lib/msun/src/s_conjf.c",
         "upstream-freebsd/lib/msun/src/s_conjl.c",
-        "upstream-freebsd/lib/msun/src/s_copysign.c",
-        "upstream-freebsd/lib/msun/src/s_copysignf.c",
         "upstream-freebsd/lib/msun/src/s_cos.c",
         "upstream-freebsd/lib/msun/src/s_cospi.c",
         "upstream-freebsd/lib/msun/src/s_cpow.c",
@@ -235,7 +233,6 @@
                 "upstream-freebsd/lib/msun/src/s_cbrtl.c",
                 "upstream-freebsd/lib/msun/src/s_ceill.c",
                 "upstream-freebsd/lib/msun/src/s_clogl.c",
-                "upstream-freebsd/lib/msun/src/s_copysignl.c",
                 "upstream-freebsd/lib/msun/src/e_coshl.c",
                 "upstream-freebsd/lib/msun/src/s_cosl.c",
                 "upstream-freebsd/lib/msun/src/s_csqrtl.c",
@@ -308,8 +305,6 @@
             exclude_srcs: [
                 "upstream-freebsd/lib/msun/src/s_ceil.c",
                 "upstream-freebsd/lib/msun/src/s_ceilf.c",
-                "upstream-freebsd/lib/msun/src/s_copysign.c",
-                "upstream-freebsd/lib/msun/src/s_copysignf.c",
                 "upstream-freebsd/lib/msun/src/s_floor.c",
                 "upstream-freebsd/lib/msun/src/s_floorf.c",
                 "upstream-freebsd/lib/msun/src/s_fma.c",
@@ -345,8 +340,6 @@
                 // TODO: do the rest when our clang has https://reviews.llvm.org/D136508.
                 // TODO: "upstream-freebsd/lib/msun/src/s_ceil.c",
                 // TODO: "upstream-freebsd/lib/msun/src/s_ceilf.c",
-                "upstream-freebsd/lib/msun/src/s_copysign.c",
-                "upstream-freebsd/lib/msun/src/s_copysignf.c",
                 // TODO: "upstream-freebsd/lib/msun/src/s_floor.c",
                 // TODO: "upstream-freebsd/lib/msun/src/s_floorf.c",
                 "upstream-freebsd/lib/msun/src/s_fma.c",
diff --git a/libm/builtins.cpp b/libm/builtins.cpp
index e66c3e7..779a2d1 100644
--- a/libm/builtins.cpp
+++ b/libm/builtins.cpp
@@ -30,10 +30,9 @@
 #endif
 #endif
 
-#if defined(__aarch64__) || defined(__riscv)
 double copysign(double x, double y) { return __builtin_copysign(x, y); }
 float copysignf(float x, float y) { return __builtin_copysignf(x, y); }
-#endif
+long double copysignl(long double x, long double y) { return __builtin_copysignl(x, y); }
 
 #if defined(__arm__) || defined(__aarch64__) || defined(__i386__) || defined(__x86_64__)
 float floorf(float x) { return __builtin_floorf(x); }
diff --git a/libm/fake_long_double.c b/libm/fake_long_double.c
index 26edfeb..5f9b980 100644
--- a/libm/fake_long_double.c
+++ b/libm/fake_long_double.c
@@ -24,7 +24,6 @@
 // Android works around those cases by replacing the broken functions with our own trivial stubs
 // that call the regular "double" function.
 
-long double copysignl(long double a1, long double a2) { return copysign(a1, a2); }
 long double fmaxl(long double a1, long double a2) { return fmax(a1, a2); }
 long double fmodl(long double a1, long double a2) { return fmod(a1, a2); }
 long double fminl(long double a1, long double a2) { return fmin(a1, a2); }