summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>2004-03-19 03:21:47 +0000
committerghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>2004-03-19 03:21:47 +0000
commit6652176a459572927cee4d0d5aa8db5f3417a4cf (patch)
tree39bd6272217e484029f6aad35ce86c951779b780
parent0405708bc2e073b1dcabef5f6cb77cfbcc9a2333 (diff)
downloadgcc-6652176a459572927cee4d0d5aa8db5f3417a4cf.tar.gz
* convert.c (convert_to_real): Add more math builtins.
testsuite: * gcc.dg/torture/builtin-convert-1.c: Test more math builtins. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@79668 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/convert.c33
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.dg/torture/builtin-convert-1.c22
4 files changed, 61 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e24e339a090..5ae4f3dd8f0 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 7224277206b..397c54228db 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 be760c89c87..03a37e6295f 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 d66d634071a..ac671590d20 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);