* optabs.h (enum optab_index): Add new OTI_significand.
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 19 Jun 2009 14:22:16 +0000 (14:22 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 19 Jun 2009 14:22:16 +0000 (14:22 +0000)
commitb3154a1fe8d994ac93925dc544f36284631adba3
treec7f3ade8c5e3a25441fdd08fc75af39c939d4fb2
parent5f618887d781e00867224feb78ad9f6357fef26d
* optabs.h (enum optab_index): Add new OTI_significand.
(significand_optab): Define corresponding macro.
* optabs.c (init_optabs): Initialize significand_optab.
* genopinit.c (optabs): Implement significand_optab using
significand?f2 patterns.
* builtins.c (expand_builtin_mathfn): Handle
BUILT_IN_SIGNIFICAND{,F,L}.
(expand_builtin): Expand BUILT_IN_SIGNIFICAND{,F,L} using
expand_builtin_mathfn if flag_unsafe_math_optimizations is set.

* config/i386/i386.md (significandxf2, significand<mode>2): New
expanders to implement significandf, significand and significandl
built-ins as inline x87 intrinsics.

testsuite/ChangeLog:

* gcc.dg/builtins-34.c: Add significand cases.

PR testsuite/40491
* testsuite/gcc.dg/20080522-1.c: Remove testcase for real.
* testsuite/gcc.dg/20080528-1.c: Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@148705 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/builtins.c
gcc/config/i386/i386.md
gcc/genopinit.c
gcc/optabs.c
gcc/optabs.h
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/20080522-1.c [deleted file]
gcc/testsuite/gcc.dg/20080528-1.c [deleted file]
gcc/testsuite/gcc.dg/builtins-34.c