diff options
author | Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | 2007-05-18 01:42:15 +0000 |
---|---|---|
committer | Kaveh Ghazi <ghazi@gcc.gnu.org> | 2007-05-18 01:42:15 +0000 |
commit | bf460eec6facce43acc1bb89fd3fa3c271e3dd22 (patch) | |
tree | 9b7cc1714bd2bf985cd41854074a5e4fdf0d9365 /gcc/testsuite/gcc.dg/builtins-1.c | |
parent | ea91f95764aaa7a1ab8ceb78e81414dc28fb6b42 (diff) | |
download | gcc-bf460eec6facce43acc1bb89fd3fa3c271e3dd22.zip gcc-bf460eec6facce43acc1bb89fd3fa3c271e3dd22.tar.gz gcc-bf460eec6facce43acc1bb89fd3fa3c271e3dd22.tar.bz2 |
builtins.c (CASE_MATHFN_REENT): New macro.
* builtins.c (CASE_MATHFN_REENT): New macro.
(mathfn_built_in): Use it.
* builtins.def (BUILT_IN_GAMMA_R, BUILT_IN_GAMMAF_R,
BUILT_IN_GAMMAL_R, BUILT_IN_LGAMMA_R, BUILT_IN_LGAMMAF_R,
BUILT_IN_LGAMMAL_R): New.
* doc/extend.texi: Document new builtins.
testsuite:
* gcc.dg/builtins-1.c: Test reentrant gamma functions.
From-SVN: r124821
Diffstat (limited to 'gcc/testsuite/gcc.dg/builtins-1.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/builtins-1.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/builtins-1.c b/gcc/testsuite/gcc.dg/builtins-1.c index 640576a5..573a879 100644 --- a/gcc/testsuite/gcc.dg/builtins-1.c +++ b/gcc/testsuite/gcc.dg/builtins-1.c @@ -44,6 +44,14 @@ double test_##FN(double x, TYPE y) { return __builtin_##FN(x, y); } \ float test_##FN##f(float x, TYPE y) { return __builtin_##FN##f(x, y); } \ long double test_##FN##l(long double x, TYPE y) { return __builtin_##FN##l(x, y); } +/* Test FP functions taking two arguments, the second argument is of a + supplied type. The function is named reentrant style, meaning "_r" + appears after the possible f/l suffix. */ +#define FPTEST2ARG2_REENT(FN, TYPE) \ +double test_##FN##_r(double x, TYPE y) { return __builtin_##FN##_r(x, y); } \ +float test_##FN##f_r(float x, TYPE y) { return __builtin_##FN##f_r(x, y); } \ +long double test_##FN##l_r(long double x, TYPE y) { return __builtin_##FN##l_r(x, y); } + /* Test FP functions taking two arguments, the second argument is a FP pointer. */ #define FPTEST2FPP2(FN) \ @@ -132,6 +140,7 @@ FPTEST2 (fmin) FPTEST2 (fmod) FPTEST2ARG2 (frexp, int *) FPTEST1 (gamma) +FPTEST2ARG2_REENT (gamma, int *) /* gamma_r */ FPTEST0 (huge_val) FPTEST2 (hypot) FPTEST1 (ilogb) @@ -141,6 +150,7 @@ FPTEST1 (j1) FPTEST2ARG1 (jn, int) FPTEST2ARG2 (ldexp, int) FPTEST1 (lgamma) +FPTEST2ARG2_REENT (lgamma, int *) /* lgamma_r */ FPTEST1RET (llrint, long long) FPTEST1RET (llround, long long) FPTEST1 (log) |