aboutsummaryrefslogtreecommitdiff
path: root/gcc/builtins.c
diff options
context:
space:
mode:
authorRoger Sayle <roger@eyesopen.com>2003-02-07 22:37:57 +0000
committerRoger Sayle <sayle@gcc.gnu.org>2003-02-07 22:37:57 +0000
commit46847aa6e79a40d2d569c726a50dc920e6ef2d81 (patch)
tree5831f8d64256959cde2af68fd1808297950ca51d /gcc/builtins.c
parentc48d6750f4d60f288eae97b09dc7e4e4a025b3d9 (diff)
downloadgcc-46847aa6e79a40d2d569c726a50dc920e6ef2d81.zip
gcc-46847aa6e79a40d2d569c726a50dc920e6ef2d81.tar.gz
gcc-46847aa6e79a40d2d569c726a50dc920e6ef2d81.tar.bz2
builtin-types.def (BT_FN_FLOAT_FLOAT_FLOAT): New built-in type.
* builtin-types.def (BT_FN_FLOAT_FLOAT_FLOAT): New built-in type. (BT_FN_LONG_DOUBLE_LONG_DOUBLE_LONG_DOUBLE): Likewise. (BT_FN_DOUBLE_DOUBLE_DOUBLE): Likewise. * builtins.def: Define pow, powf, powl, atan2, atan2f and atan2l builtin functions (and their __builtin_* variants). * builtins.c (mathfn_built_in): Handle missing log{,f,l} cases. (expand_builtin): Don't expand log{,f,l}, pow{,f,l} or atan2{,f,l} when not optimizing. * doc/extend.texi: Document new pow and atan2 builtins, and their float and long double variants. Realphabetize builtins. * testsuite/gcc.dg/builtins-4.c: New test case. From-SVN: r62551
Diffstat (limited to 'gcc/builtins.c')
-rw-r--r--gcc/builtins.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/gcc/builtins.c b/gcc/builtins.c
index 47d93e2..e2ad1e8 100644
--- a/gcc/builtins.c
+++ b/gcc/builtins.c
@@ -1507,6 +1507,11 @@ mathfn_built_in (type, fn)
case BUILT_IN_EXPL:
fcode = BUILT_IN_EXP;
break;
+ case BUILT_IN_LOG:
+ case BUILT_IN_LOGF:
+ case BUILT_IN_LOGL:
+ fcode = BUILT_IN_LOG;
+ break;
case BUILT_IN_FLOOR:
case BUILT_IN_FLOORF:
case BUILT_IN_FLOORL:
@@ -1558,6 +1563,11 @@ mathfn_built_in (type, fn)
case BUILT_IN_EXPL:
fcode = BUILT_IN_EXPF;
break;
+ case BUILT_IN_LOG:
+ case BUILT_IN_LOGF:
+ case BUILT_IN_LOGL:
+ fcode = BUILT_IN_LOGF;
+ break;
case BUILT_IN_FLOOR:
case BUILT_IN_FLOORF:
case BUILT_IN_FLOORL:
@@ -1609,6 +1619,11 @@ mathfn_built_in (type, fn)
case BUILT_IN_EXPL:
fcode = BUILT_IN_EXPL;
break;
+ case BUILT_IN_LOG:
+ case BUILT_IN_LOGF:
+ case BUILT_IN_LOGL:
+ fcode = BUILT_IN_LOGL;
+ break;
case BUILT_IN_FLOOR:
case BUILT_IN_FLOORF:
case BUILT_IN_FLOORL:
@@ -3905,6 +3920,15 @@ expand_builtin (exp, target, subtarget, mode, ignore)
case BUILT_IN_EXP:
case BUILT_IN_EXPF:
case BUILT_IN_EXPL:
+ case BUILT_IN_LOG:
+ case BUILT_IN_LOGF:
+ case BUILT_IN_LOGL:
+ case BUILT_IN_POW:
+ case BUILT_IN_POWF:
+ case BUILT_IN_POWL:
+ case BUILT_IN_ATAN2:
+ case BUILT_IN_ATAN2F:
+ case BUILT_IN_ATAN2L:
case BUILT_IN_MEMSET:
case BUILT_IN_MEMCPY:
case BUILT_IN_MEMCMP: