diff options
author | Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | 2004-03-19 03:21:47 +0000 |
---|---|---|
committer | Kaveh Ghazi <ghazi@gcc.gnu.org> | 2004-03-19 03:21:47 +0000 |
commit | 1fb7e3af5ba48265301f769b2c473f976353ae10 (patch) | |
tree | 39bd6272217e484029f6aad35ce86c951779b780 /gcc | |
parent | b381036092ab446b8bf51c5f4f6ff7dd2eaf8608 (diff) | |
download | gcc-1fb7e3af5ba48265301f769b2c473f976353ae10.zip gcc-1fb7e3af5ba48265301f769b2c473f976353ae10.tar.gz gcc-1fb7e3af5ba48265301f769b2c473f976353ae10.tar.bz2 |
convert.c (convert_to_real): Add more math builtins.
* convert.c (convert_to_real): Add more math builtins.
testsuite:
* gcc.dg/torture/builtin-convert-1.c: Test more math builtins.
From-SVN: r79668
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/convert.c | 33 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/torture/builtin-convert-1.c | 22 |
4 files changed, 61 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e24e339..5ae4f3d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2004-03-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * convert.c (convert_to_real): Add more math builtins. + +2004-03-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * convert.c (convert_to_real): Reformat using switch stmt. 2004-03-18 Mark Mitchell <mark@codesourcery.com> diff --git a/gcc/convert.c b/gcc/convert.c index 7224277..397c542 100644 --- a/gcc/convert.c +++ b/gcc/convert.c @@ -137,11 +137,40 @@ convert_to_real (tree type, tree expr) switch (fcode) { #define CASE_MATHFN(FN) case BUILT_IN_##FN: case BUILT_IN_##FN##L: - CASE_MATHFN (SQRT) - CASE_MATHFN (SIN) + CASE_MATHFN (ACOS) + CASE_MATHFN (ACOSH) + CASE_MATHFN (ASIN) + CASE_MATHFN (ASINH) + CASE_MATHFN (ATAN) + CASE_MATHFN (ATANH) + CASE_MATHFN (CBRT) CASE_MATHFN (COS) + CASE_MATHFN (COSH) + CASE_MATHFN (ERF) + CASE_MATHFN (ERFC) CASE_MATHFN (EXP) + CASE_MATHFN (EXP10) + CASE_MATHFN (EXP2) + CASE_MATHFN (EXPM1) + CASE_MATHFN (FABS) + CASE_MATHFN (GAMMA) + CASE_MATHFN (J0) + CASE_MATHFN (J1) + CASE_MATHFN (LGAMMA) CASE_MATHFN (LOG) + CASE_MATHFN (LOG10) + CASE_MATHFN (LOG1P) + CASE_MATHFN (LOG2) + CASE_MATHFN (LOGB) + CASE_MATHFN (POW10) + CASE_MATHFN (SIN) + CASE_MATHFN (SINH) + CASE_MATHFN (SQRT) + CASE_MATHFN (TAN) + CASE_MATHFN (TANH) + CASE_MATHFN (TGAMMA) + CASE_MATHFN (Y0) + CASE_MATHFN (Y1) #undef CASE_MATHFN { tree arg0 = strip_float_extensions (TREE_VALUE (TREE_OPERAND (expr, 1))); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index be760c8..03a37e6 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2004-03-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * gcc.dg/torture/builtin-convert-1.c: Test more math builtins. + 2004-03-18 Mark Mitchell <mark@codesourcery.com> * g++.dg/expr/cond5.C: New test. diff --git a/gcc/testsuite/gcc.dg/torture/builtin-convert-1.c b/gcc/testsuite/gcc.dg/torture/builtin-convert-1.c index d66d634..ac67159 100644 --- a/gcc/testsuite/gcc.dg/torture/builtin-convert-1.c +++ b/gcc/testsuite/gcc.dg/torture/builtin-convert-1.c @@ -89,11 +89,33 @@ void test(double d1, float f1, long double ld1) #ifdef __OPTIMIZE__ + OUTER_CAST1 (acos, /*C99=*/ 0); + OUTER_CAST1 (acosh, /*C99=*/ 1); + OUTER_CAST1 (asin, /*C99=*/ 1); + OUTER_CAST1 (asinh, /*C99=*/ 1); + OUTER_CAST1 (atan, /*C99=*/ 0); + OUTER_CAST1 (atanh, /*C99=*/ 1); + OUTER_CAST1 (cbrt, /*C99=*/ 1); OUTER_CAST1 (cos, /*C99=*/ 0); + OUTER_CAST1 (cosh, /*C99=*/ 0); + OUTER_CAST1 (erf, /*C99=*/ 1); + OUTER_CAST1 (erfc, /*C99=*/ 1); OUTER_CAST1 (exp, /*C99=*/ 0); + OUTER_CAST1 (exp2, /*C99=*/ 1); + OUTER_CAST1 (expm1, /*C99=*/ 1); + OUTER_CAST1 (fabs, /*C99=*/ 0); + OUTER_CAST1 (lgamma, /*C99=*/ 1); OUTER_CAST1 (log, /*C99=*/ 0); + OUTER_CAST1 (log10, /*C99=*/ 0); + OUTER_CAST1 (log1p, /*C99=*/ 1); + OUTER_CAST1 (log2, /*C99=*/ 1); + OUTER_CAST1 (logb, /*C99=*/ 1); OUTER_CAST1 (sin, /*C99=*/ 0); + OUTER_CAST1 (sinh, /*C99=*/ 0); OUTER_CAST1 (sqrt, /*C99=*/ 0); + OUTER_CAST1 (tan, /*C99=*/ 0); + OUTER_CAST1 (tanh, /*C99=*/ 0); + OUTER_CAST1 (tgamma, /*C99=*/ 1); INNER_CAST1 (ceil, /*C99=*/ 0); OUTER_CAST1 (ceil, /*C99=*/ 0); |