* optabs.h (enum optab_index): Add new OTI_signbit.
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 21 Jul 2007 21:45:06 +0000 (21:45 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 21 Jul 2007 21:45:06 +0000 (21:45 +0000)
commit27eda24040c703c6ecd3eadc44c78eb80098b995
tree2e34198e0e1a0497de165774678adb850f5fdf36
parentba9293d743480d445cf092990fc04951477c5871
    * optabs.h (enum optab_index): Add new OTI_signbit.
        (signbit_optab): Define corresponding macro.
        (enum insn_code signbit_optab[]): Remove array.
        * optabs.c (init_optabs): Initialize signbit_optab using init_optab.
        (expand_copysign_absneg): If back end provides signbit insn, use it
        instead of bit operations on floating point argument.
        * builtins.c (enum insn_code signbit_optab[]): Remove array.
        (expand_builtin_signbit): Check signbit_optab->handlers[].insn_code for
        availability of signbit insn.

        * config/i386/i386.md (signbit<mode>2): New insn pattern to implement
        signbitf, signbit and signbitl built-ins as inline x87 intrinsics when
        SSE mode is not active.
        (isinf<mode>2): Disable for mfpmath=sse,387.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126813 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/builtins.c
gcc/config/i386/i386.md
gcc/optabs.c
gcc/optabs.h