lib: Finish int_math.h definitions using compiler builtins and eliminate
implementation use of <math.h>.
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@144786 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/int_math.h b/lib/int_math.h
index 856889d..b472f1a 100644
--- a/lib/int_math.h
+++ b/lib/int_math.h
@@ -21,8 +21,30 @@
#ifndef INT_MATH_H
#define INT_MATH_H
+#define CRT_INFINITY __builtin_huge_valf()
+
#define crt_isfinite(x) __builtin_isfinite((x))
#define crt_isinf(x) __builtin_isinf((x))
#define crt_isnan(x) __builtin_isnan((x))
+#define crt_copysign(x, y) __builtin_copysign((x), (y))
+#define crt_copysignf(x, y) __builtin_copysignf((x), (y))
+#define crt_copysignl(x, y) __builtin_copysignl((x), (y))
+
+#define crt_fabs(x) __builtin_fabs((x))
+#define crt_fabsf(x) __builtin_fabsf((x))
+#define crt_fabsl(x) __builtin_fabsl((x))
+
+#define crt_fmax(x, y) __builtin_fmax((x), (y))
+#define crt_fmaxf(x, y) __builtin_fmaxf((x), (y))
+#define crt_fmaxl(x, y) __builtin_fmaxl((x), (y))
+
+#define crt_logb(x) __builtin_logb((x))
+#define crt_logbf(x) __builtin_logbf((x))
+#define crt_logbl(x) __builtin_logbl((x))
+
+#define crt_scalbn(x, y) __builtin_scalbn((x), (y))
+#define crt_scalbnf(x, y) __builtin_scalbnf((x), (y))
+#define crt_scalbnl(x, y) __builtin_scalbnl((x), (y))
+
#endif /* INT_MATH_H */