(make_extraction): Make test whether to use AND or
authorRichard Stallman <rms@gnu.org>
Mon, 21 Sep 1992 13:33:38 +0000 (13:33 +0000)
committerRichard Stallman <rms@gnu.org>
Mon, 21 Sep 1992 13:33:38 +0000 (13:33 +0000)
{SIGN,ZERO}_EXTRACT depend on UNSIGNEDP.

From-SVN: r2202

gcc/combine.c

index bc1cc9b949cc06d9a0fa2a1eeece4164ab707edf..05c7c94aa1d0669ec805a230b55bd39a741e0346 100644 (file)
@@ -4631,10 +4631,10 @@ make_extraction (mode, inner, pos, pos_rtx, len,
                                 mode, new));
     }
 
-  /* Unless this isin a COMPARE or we have a funny memory reference,
-     don't do anything with field extracts starting at the low-order
-     bit since they are simple AND operations.  */
-  if (pos == 0 && ! in_dest && ! in_compare && ! spans_byte)
+  /* Unless this is a COMPARE or we have a funny memory reference,
+     don't do anything with zero-extending field extracts starting at
+     the low-order bit since they are simple AND operations.  */
+  if (pos == 0 && ! in_dest && ! in_compare && ! spans_byte && unsignedp)
     return 0;
 
   /* Get the mode to use should INNER be a MEM, the mode for the position,