combine.c (combine_simplify_rtx): Generate a new shift operation when simplifying...
authorDiego Novillo <dnovillo@redhat.com>
Fri, 20 Jul 2001 17:47:03 +0000 (17:47 +0000)
committerDiego Novillo <dnovillo@gcc.gnu.org>
Fri, 20 Jul 2001 17:47:03 +0000 (13:47 -0400)
* combine.c (combine_simplify_rtx): Generate a new shift operation
when simplifying the first operand of a (neg (ashift)) expression.

From-SVN: r44202

gcc/ChangeLog
gcc/combine.c

index bfa00fa5d82392aaf17552c1156ae2404c86c239..768715ea0e48cd2780b2acdfd11bb165b8daecf4 100644 (file)
@@ -1,3 +1,8 @@
+2001-07-20  Diego Novillo  <dnovillo@redhat.com>
+
+       * combine.c (combine_simplify_rtx): Generate a new shift operation
+       when simplifying the first operand of a (neg (ashift)) expression.
+
 2001-07-20  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
 
        * regclass.c (N_REG_INTS): Use only 32 bits per element.
index 8658aadbddb1a5a2fbcf5a206b548f61ee2b480d..724e9ef13974a4543df2e286555a8cd1b4e13583 100644 (file)
@@ -3921,10 +3921,7 @@ combine_simplify_rtx (x, op0_mode, last, in_dest)
          temp = simplify_unary_operation (NEG, mode,
                                           XEXP (XEXP (x, 0), 0), mode);
          if (temp)
-           {
-             SUBST (XEXP (XEXP (x, 0), 0), temp);
-             return XEXP (x, 0);
-           }
+           return gen_binary (ASHIFT, mode, temp, XEXP (XEXP (x, 0), 1));
        }
 
       temp = expand_compound_operation (XEXP (x, 0));