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/optabs.h | |
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/optabs.h')
-rw-r--r-- | gcc/optabs.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/optabs.h b/gcc/optabs.h index 4f39e35..496ba1a 100644 --- a/gcc/optabs.h +++ b/gcc/optabs.h @@ -156,6 +156,10 @@ enum optab_index OTI_exp, /* Natural Logarithm */ OTI_log, + /* Base-10 Logarithm */ + OTI_log10, + /* Base-2 Logarithm */ + OTI_log2, /* Rounding functions */ OTI_floor, OTI_ceil, @@ -260,6 +264,8 @@ extern GTY(()) optab optab_table[OTI_MAX]; #define cos_optab (optab_table[OTI_cos]) #define exp_optab (optab_table[OTI_exp]) #define log_optab (optab_table[OTI_log]) +#define log10_optab (optab_table[OTI_log10]) +#define log2_optab (optab_table[OTI_log2]) #define floor_optab (optab_table[OTI_floor]) #define ceil_optab (optab_table[OTI_ceil]) #define btrunc_optab (optab_table[OTI_trunc]) |