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