expr.c (expand_expr_real_2): Don't widen constant op1 when expanding widening multipl...
authorJozef Lawrynowicz <jozef.l@mittosystems.com>
Mon, 21 Oct 2019 20:44:16 +0000 (20:44 +0000)
committerJozef Lawrynowicz <jozefl@gcc.gnu.org>
Mon, 21 Oct 2019 20:44:16 +0000 (20:44 +0000)
2019-10-21  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

* expr.c (expand_expr_real_2): Don't widen constant op1 when expanding
widening multiplication.

From-SVN: r277271

gcc/ChangeLog
gcc/expr.c

index 50121777940e620e50274f707c3702da7d793f9a..2aa5536cf329fca1129c3c690cd584049ad1abee 100644 (file)
@@ -1,3 +1,8 @@
+2019-10-21  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
+
+       * expr.c (expand_expr_real_2): Don't widen constant op1 when expanding
+       widening multiplication.
+
 2019-10-21  Richard Earnshaw  <rearnsha@arm.com>
 
        * config/arm/iterators.md (t2_binop0): Fix typo in comment.
index b54bf1d3dc51340c0468aac1b158797625cdd851..476c6865f20828fc68f455e70d4874eaabd9d08d 100644 (file)
@@ -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);