From c01d9cfe840a1b9c5e6fa68f5af4fe321263bc7f Mon Sep 17 00:00:00 2001 From: Jozef Lawrynowicz Date: Mon, 21 Oct 2019 20:44:16 +0000 Subject: [PATCH] expr.c (expand_expr_real_2): Don't widen constant op1 when expanding widening multiplication. 2019-10-21 Jozef Lawrynowicz * expr.c (expand_expr_real_2): Don't widen constant op1 when expanding widening multiplication. From-SVN: r277271 --- gcc/ChangeLog | 5 +++++ gcc/expr.c | 3 --- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 50121777940..2aa5536cf32 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2019-10-21 Jozef Lawrynowicz + + * expr.c (expand_expr_real_2): Don't widen constant op1 when expanding + widening multiplication. + 2019-10-21 Richard Earnshaw * config/arm/iterators.md (t2_binop0): Fix typo in comment. diff --git a/gcc/expr.c b/gcc/expr.c index b54bf1d3dc5..476c6865f20 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -8954,9 +8954,6 @@ expand_expr_real_2 (sepops ops, rtx target, machine_mode tmode, != INTEGER_CST check. Handle it. */ if (GET_MODE (op0) == VOIDmode && GET_MODE (op1) == VOIDmode) goto widen_mult_const; - if (TREE_CODE (treeop1) == INTEGER_CST) - op1 = convert_modes (mode, word_mode, op1, - TYPE_UNSIGNED (TREE_TYPE (treeop1))); temp = expand_binop (mode, other_optab, op0, op1, target, unsignedp, OPTAB_LIB_WIDEN); hipart = gen_highpart (word_mode, temp); -- 2.30.2