http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49088

--- Comment #3 from H.J. Lu <hjl.tools at gmail dot com> 2011-05-20 19:01:14 
UTC ---
This patch works:

diff --git a/gcc/combine.c b/gcc/combine.c
index 8af86f2..60c6e13 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -10184,6 +10184,7 @@ simplify_shift_const_1 (enum rtx_code code, enum
machine_mode result_mode,

         if (code == ASHIFTRT
        || (code == ROTATE && first_code == ASHIFTRT)
+       || (code == LSHIFTRT && first_code == ASHIFT)
        || GET_MODE_BITSIZE (mode) > HOST_BITS_PER_WIDE_INT
        || (GET_MODE (varop) != result_mode
            && (first_code == ASHIFTRT || first_code == LSHIFTRT

Does it make sense?

Reply via email to