This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/28806] lround is not expanded inline to SSE conversion sequence



------- Comment #2 from rguenth at gcc dot gnu dot org  2006-10-28 11:31 -------
Subject: Bug 28806

Author: rguenth
Date: Sat Oct 28 11:30:41 2006
New Revision: 118105

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=118105
Log:
2006-10-28  Richard Guenther  <rguenther@suse.de>

        PR target/28806
        * builtins.c (expand_builtin_int_roundingfn_2): Expand
        BUILT_IN_LROUND and BUILT_IN_LLROUND from here.
        (expand_builtin): Adjust likewise.
        * genopinit.c (optabs[]): Add lround optab.
        * optabs.c (init_optabs): Initialize lround_optab.
        * optabs.h (enum convert_optab_index): Add COI_lround.
        (lround_optab): Define.
        * config/i386/i386-protos.h (ix86_expand_lround): Declare.
        * config/i386/i386.c (ix86_sse_copysign_to_positive): New
        static function.
        (ix86_expand_lround): New function.
        * config/i386/i386.md (lround<mode>di2, lround<mode>si2):
        New expanders.
        * doc/md.texi (lroundMN2): Document.

        * gcc.target/i386/math-torture/lround.c: New testcase.

Added:
    trunk/gcc/testsuite/gcc.target/i386/math-torture/lround.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/builtins.c
    trunk/gcc/config/i386/i386-protos.h
    trunk/gcc/config/i386/i386.c
    trunk/gcc/config/i386/i386.md
    trunk/gcc/doc/md.texi
    trunk/gcc/genopinit.c
    trunk/gcc/optabs.c
    trunk/gcc/optabs.h
    trunk/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28806


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]