aboutsummaryrefslogtreecommitdiff
path: root/gcc/optabs.h
diff options
context:
space:
mode:
authorUros Bizjak <uros@kss-loka.si>2004-02-12 00:39:41 +0100
committerRoger Sayle <sayle@gcc.gnu.org>2004-02-11 23:39:41 +0000
commit3b8e0c9129b0ed3fe2e4aa5bc466df5348e2d5fd (patch)
tree159c66f75d67ab22ee9d79a474ed9f6f66eab4ba /gcc/optabs.h
parenta6abdce327180878f4753126647b351026b2dcd0 (diff)
downloadgcc-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.h6
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])