From: Jakub Jelinek Date: Thu, 6 Feb 2014 21:54:21 +0000 (+0100) Subject: re PR rtl-optimization/60030 (ICE in simplify_subreg, at simplify-rtx.c:5903) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=47d552eb018f0ccd92a5d0c38a79ff702b4f1b70;p=gcc.git re PR rtl-optimization/60030 (ICE in simplify_subreg, at simplify-rtx.c:5903) PR rtl-optimization/60030 * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround lopart with paradoxical subreg before shifting it up by hprec. From-SVN: r207582 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e489b6283d8..33f1ccf5344 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2014-02-06 Jakub Jelinek + + PR rtl-optimization/60030 + * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround + lopart with paradoxical subreg before shifting it up by hprec. + 2014-02-06 Kyrylo Tkachov * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table. diff --git a/gcc/internal-fn.c b/gcc/internal-fn.c index 3efd2b11934..568a96b94b1 100644 --- a/gcc/internal-fn.c +++ b/gcc/internal-fn.c @@ -646,7 +646,8 @@ ubsan_expand_si_overflow_mul_check (gimple stmt) emit_cmp_and_jump_insns (hipart, const0_rtx, GE, NULL_RTX, hmode, false, after_hipart_neg, PROB_EVEN); - tem = expand_shift (LSHIFT_EXPR, mode, lopart, hprec, NULL_RTX, 1); + tem = convert_modes (mode, hmode, lopart, 1); + tem = expand_shift (LSHIFT_EXPR, mode, tem, hprec, NULL_RTX, 1); tem = expand_simple_binop (mode, MINUS, loxhi, tem, NULL_RTX, 1, OPTAB_DIRECT); emit_move_insn (loxhi, tem);