diff options
author | Uros Bizjak <uros@kss-loka.si> | 2006-10-25 08:36:49 +0200 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2006-10-25 08:36:49 +0200 |
commit | 17b982699f817a6dc5b1b8f13a0f43eaf8718ead (patch) | |
tree | 649288ab8cb4c7a07e2984f5f7ec06cb008a3a4d /gcc/builtins.c | |
parent | 942d7821790f4341cfacc5b704f9344cc9c2efc9 (diff) | |
download | gcc-17b982699f817a6dc5b1b8f13a0f43eaf8718ead.zip gcc-17b982699f817a6dc5b1b8f13a0f43eaf8718ead.tar.gz gcc-17b982699f817a6dc5b1b8f13a0f43eaf8718ead.tar.bz2 |
optabs.h (enum optab_index): Rename OTI_drem to OTI_remainder.
* optabs.h (enum optab_index): Rename OTI_drem to OTI_remainder.
(remainder_optab): Define corresponding macro.
(drem_optab): Remove.
* optabs.c (init_optabs): Initialize remainder_optab. Remove
drem_optab initialization.
* genopinit.c (optabs): Implement remainder_optab using
remainder?f3 patterns. Remove drem_optab.
* builtins.c (expand_builtin_mathfn_2): Handle
BUILT_IN_REMAINDER{,F,L} using remainder_optab.
(expand_builtin): Expand BUILT_IN_REMAINDER{,F,L} using
expand_builtin_mathfn_2.
(expand_builtin) [BUILT_IN_FMOD, BUILT_IN_DREM]: Do not
depend on flag_unsafe_math_optimizations.
* config/i386/i386.md ("remaindersf3", "remainderdf3")
("remainderxf3"): Renamed from "drem{s,d,x}f3" expanders.
Do not depend on flag_unsafe_math_optimizations. Use
truncxf?f expander instead of truncxf?f_i387_noop.
("fpremxf4", "fprem1xf4"): Do not depend on
flag_unsafe_math_optimizations.
("fmodsf3", "fmoddf3", "fmodxf3"): Do not depend on
flag_unsafe_math_optimizations. Use truncxf?f expander
instead of truncxf?f_i387_noop.
* doc/md.texi (fmod, remainder): Document standard named pattern.
testsuite/ChangeLog:
* gcc.dg/builtins-40.c: Also check remainder(), remainderf()
and remainderl() built-in functions. Remove -ffast-math from
dg-options.
From-SVN: r118024
Diffstat (limited to 'gcc/builtins.c')
-rw-r--r-- | gcc/builtins.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/gcc/builtins.c b/gcc/builtins.c index ebb9a85..6955cda 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -1975,8 +1975,9 @@ expand_builtin_mathfn_2 (tree exp, rtx target, rtx subtarget) builtin_optab = ldexp_optab; break; CASE_FLT_FN (BUILT_IN_FMOD): builtin_optab = fmod_optab; break; + CASE_FLT_FN (BUILT_IN_REMAINDER): CASE_FLT_FN (BUILT_IN_DREM): - builtin_optab = drem_optab; break; + builtin_optab = remainder_optab; break; default: gcc_unreachable (); } @@ -5796,10 +5797,12 @@ expand_builtin (tree exp, rtx target, rtx subtarget, enum machine_mode mode, CASE_FLT_FN (BUILT_IN_ATAN2): CASE_FLT_FN (BUILT_IN_LDEXP): - CASE_FLT_FN (BUILT_IN_FMOD): - CASE_FLT_FN (BUILT_IN_DREM): if (! flag_unsafe_math_optimizations) break; + + CASE_FLT_FN (BUILT_IN_FMOD): + CASE_FLT_FN (BUILT_IN_REMAINDER): + CASE_FLT_FN (BUILT_IN_DREM): target = expand_builtin_mathfn_2 (exp, target, subtarget); if (target) return target; |