diff options
author | Roger Sayle <roger@eyesopen.com> | 2003-02-07 22:37:57 +0000 |
---|---|---|
committer | Roger Sayle <sayle@gcc.gnu.org> | 2003-02-07 22:37:57 +0000 |
commit | 46847aa6e79a40d2d569c726a50dc920e6ef2d81 (patch) | |
tree | 5831f8d64256959cde2af68fd1808297950ca51d /gcc/builtins.def | |
parent | c48d6750f4d60f288eae97b09dc7e4e4a025b3d9 (diff) | |
download | gcc-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.def')
-rw-r--r-- | gcc/builtins.def | 44 |
1 files changed, 43 insertions, 1 deletions
diff --git a/gcc/builtins.def b/gcc/builtins.def index 60a962a..268696e 100644 --- a/gcc/builtins.def +++ b/gcc/builtins.def @@ -1,6 +1,6 @@ /* This file contains the definitions and documentation for the builtins used in the GNU compiler. - Copyright (C) 2000, 2001 Free Software Foundation, Inc. + Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc. This file is part of GCC. @@ -487,6 +487,20 @@ DEF_LIB_BUILTIN(BUILT_IN_LOG, : (flag_unsafe_math_optimizations ? ATTR_CONST_NOTHROW_LIST : ATTR_PURE_NOTHROW_LIST)) +DEF_LIB_BUILTIN(BUILT_IN_POW, + "__builtin_pow", + BT_FN_DOUBLE_DOUBLE_DOUBLE, + flag_errno_math ? ATTR_NOTHROW_LIST + : (flag_unsafe_math_optimizations + ? ATTR_CONST_NOTHROW_LIST + : ATTR_PURE_NOTHROW_LIST)) +DEF_LIB_BUILTIN(BUILT_IN_ATAN2, + "__builtin_atan2", + BT_FN_DOUBLE_DOUBLE_DOUBLE, + flag_errno_math ? ATTR_NOTHROW_LIST + : (flag_unsafe_math_optimizations + ? ATTR_CONST_NOTHROW_LIST + : ATTR_PURE_NOTHROW_LIST)) DEF_C99_C90RES_BUILTIN(BUILT_IN_SQRTF, "__builtin_sqrtf", BT_FN_FLOAT_FLOAT, @@ -518,6 +532,20 @@ DEF_C99_C90RES_BUILTIN(BUILT_IN_LOGF, : (flag_unsafe_math_optimizations ? ATTR_CONST_NOTHROW_LIST : ATTR_PURE_NOTHROW_LIST)) +DEF_C99_C90RES_BUILTIN(BUILT_IN_POWF, + "__builtin_powf", + BT_FN_FLOAT_FLOAT_FLOAT, + flag_errno_math ? ATTR_NOTHROW_LIST + : (flag_unsafe_math_optimizations + ? ATTR_CONST_NOTHROW_LIST + : ATTR_PURE_NOTHROW_LIST)) +DEF_C99_C90RES_BUILTIN(BUILT_IN_ATAN2F, + "__builtin_atan2f", + BT_FN_FLOAT_FLOAT_FLOAT, + flag_errno_math ? ATTR_NOTHROW_LIST + : (flag_unsafe_math_optimizations + ? ATTR_CONST_NOTHROW_LIST + : ATTR_PURE_NOTHROW_LIST)) DEF_C99_C90RES_BUILTIN(BUILT_IN_SQRTL, "__builtin_sqrtl", BT_FN_LONG_DOUBLE_LONG_DOUBLE, @@ -549,6 +577,20 @@ DEF_C99_C90RES_BUILTIN(BUILT_IN_LOGL, : (flag_unsafe_math_optimizations ? ATTR_CONST_NOTHROW_LIST : ATTR_PURE_NOTHROW_LIST)) +DEF_C99_C90RES_BUILTIN(BUILT_IN_POWL, + "__builtin_powl", + BT_FN_LONG_DOUBLE_LONG_DOUBLE_LONG_DOUBLE, + flag_errno_math ? ATTR_NOTHROW_LIST + : (flag_unsafe_math_optimizations + ? ATTR_CONST_NOTHROW_LIST + : ATTR_PURE_NOTHROW_LIST)) +DEF_C99_C90RES_BUILTIN(BUILT_IN_ATAN2L, + "__builtin_atan2l", + BT_FN_LONG_DOUBLE_LONG_DOUBLE_LONG_DOUBLE, + flag_errno_math ? ATTR_NOTHROW_LIST + : (flag_unsafe_math_optimizations + ? ATTR_CONST_NOTHROW_LIST + : ATTR_PURE_NOTHROW_LIST)) DEF_GCC_BUILTIN(BUILT_IN_INF, "__builtin_inf", |