diff options
author | Uros Bizjak <uros@kss-loka.si> | 2004-02-12 00:39:41 +0100 |
---|---|---|
committer | Roger Sayle <sayle@gcc.gnu.org> | 2004-02-11 23:39:41 +0000 |
commit | 3b8e0c9129b0ed3fe2e4aa5bc466df5348e2d5fd (patch) | |
tree | 159c66f75d67ab22ee9d79a474ed9f6f66eab4ba /gcc/builtins.c | |
parent | a6abdce327180878f4753126647b351026b2dcd0 (diff) | |
download | gcc-3b8e0c9129b0ed3fe2e4aa5bc466df5348e2d5fd.zip gcc-3b8e0c9129b0ed3fe2e4aa5bc466df5348e2d5fd.tar.gz gcc-3b8e0c9129b0ed3fe2e4aa5bc466df5348e2d5fd.tar.bz2 |
optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
2004-02-11 Uros Bizjak <uros@kss-loka.si>
* optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
(log10_optab, log2_optab): Define corresponding macros.
* optabs.c (init_optabs): Initialize log10_optab and log2_optab.
* genopinit.c (optabs): Implement log10_optab and log2_optab
using log10?f2 and log2?f2 patterns.
* builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
(expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
* config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
log2, log2f and log2l built-ins as inline x87 intrinsics.
* gcc.dg/builtins-33.c: New test.
From-SVN: r77675
Diffstat (limited to 'gcc/builtins.c')
-rw-r--r-- | gcc/builtins.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/gcc/builtins.c b/gcc/builtins.c index 2fdc370..a5520a3 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -1662,6 +1662,14 @@ expand_builtin_mathfn (tree exp, rtx target, rtx subtarget) case BUILT_IN_LOGF: case BUILT_IN_LOGL: errno_set = true; builtin_optab = log_optab; break; + case BUILT_IN_LOG10: + case BUILT_IN_LOG10F: + case BUILT_IN_LOG10L: + errno_set = true; builtin_optab = log10_optab; break; + case BUILT_IN_LOG2: + case BUILT_IN_LOG2F: + case BUILT_IN_LOG2L: + errno_set = true; builtin_optab = log2_optab; break; case BUILT_IN_TAN: case BUILT_IN_TANF: case BUILT_IN_TANL: @@ -5130,6 +5138,12 @@ expand_builtin (tree exp, rtx target, rtx subtarget, enum machine_mode mode, case BUILT_IN_LOG: case BUILT_IN_LOGF: case BUILT_IN_LOGL: + case BUILT_IN_LOG10: + case BUILT_IN_LOG10F: + case BUILT_IN_LOG10L: + case BUILT_IN_LOG2: + case BUILT_IN_LOG2F: + case BUILT_IN_LOG2L: case BUILT_IN_TAN: case BUILT_IN_TANF: case BUILT_IN_TANL: |