https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82981

--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Author: jakub
Date: Wed Nov 15 09:01:42 2017
New Revision: 254758

URL: https://gcc.gnu.org/viewcvs?rev=254758&root=gcc&view=rev
Log:
        PR target/82981
        * internal-fn.c: Include gimple-ssa.h, tree-phinodes.h and
        ssa-iterators.h.
        (can_widen_mult_without_libcall): New function.
        (expand_mul_overflow): If only checking unsigned mul overflow,
        not result, and can do efficiently MULT_HIGHPART_EXPR, emit that.
        Don't use WIDEN_MULT_EXPR if it would involve a libcall, unless
        no other way works.  Add MULT_HIGHPART_EXPR + MULT_EXPR support.
        (expand_DIVMOD): Formatting fix.
        * expmed.h (expand_mult): Add NO_LIBCALL argument.
        * expmed.c (expand_mult): Likewise.  Use OPTAB_WIDEN rather
        than OPTAB_LIB_WIDEN if NO_LIBCALL is true, and allow it to fail.

        * gcc.target/mips/pr82981.c: New test.

Added:
    trunk/gcc/testsuite/gcc.target/mips/pr82981.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/expmed.c
    trunk/gcc/expmed.h
    trunk/gcc/internal-fn.c
    trunk/gcc/testsuite/ChangeLog

Reply via email to