From 5c0e109149d0b7cfef1c159d3e50f971095ca507 Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Tue, 6 Jul 1993 14:21:40 -0700 Subject: [PATCH] (simplify_and_const_int, LSHIFTRT case): Must be at least as many sign bit copies as bits in mask. From-SVN: r4868 --- gcc/combine.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gcc/combine.c b/gcc/combine.c index b91558a..1c8295f 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -6118,7 +6118,10 @@ simplify_and_const_int (x, mode, varop, constop) + num_sign_bit_copies (XEXP (varop, 0), GET_MODE (XEXP (varop, 0)))) >= GET_MODE_BITSIZE (GET_MODE (varop))) - && exact_log2 (constop + 1) >= 0) + && exact_log2 (constop + 1) >= 0 + && (num_sign_bit_copies (XEXP (varop, 0), + GET_MODE (XEXP (varop, 0))) + >= exact_log2 (constop + 1))) varop = gen_rtx_combine (LSHIFTRT, GET_MODE (varop), XEXP (varop, 0), GEN_INT (GET_MODE_BITSIZE (GET_MODE (varop)) -- 2.7.4