(num_sign_bit_copies): Fix 1-off error in PLUS case.
authorRichard Stallman <rms@gnu.org>
Thu, 26 Nov 1992 17:06:44 +0000 (17:06 +0000)
committerRichard Stallman <rms@gnu.org>
Thu, 26 Nov 1992 17:06:44 +0000 (17:06 +0000)
From-SVN: r2807

gcc/combine.c

index 1021391f0feaa56c3ea06c1cc27315c6db13e7c5..fc856b5e08804fef20322e8adf53c0478aa22cde 100644 (file)
@@ -6355,7 +6355,7 @@ num_sign_bit_copies (x, mode)
          sig = significant_bits (XEXP (x, 0), mode);
          if ((((HOST_WIDE_INT) 1 << (bitwidth - 1)) & sig) == 0)
            return (sig == 1 || sig == 0 ? bitwidth
-                   : bitwidth - floor_log2 (sig));
+                   : bitwidth - floor_log2 (sig) - 1);
        }
 
       num0 = num_sign_bit_copies (XEXP (x, 0), mode);