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

--- Comment #3 from H.J. Lu <hjl.tools at gmail dot com> 2011-02-14 03:04:29 
UTC ---
I am testing this patch:

diff --git a/gcc/combine.c b/gcc/combine.c
index 5e1236b..78f3089 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -2138,6 +2138,12 @@ cant_combine_insn_p (rtx insn)
     return asm_noperands (PATTERN (insn)) > 0;
   src = SET_SRC (set);
   dest = SET_DEST (set);
+  if (GET_CODE (src) == ZERO_EXTEND
+      || GET_CODE (src) == SIGN_EXTEND)
+    src = XEXP (src, 0);
+  if (GET_CODE (dest) == ZERO_EXTEND
+      || GET_CODE (dest) == SIGN_EXTEND)
+    dest = XEXP (dest, 0);
   if (GET_CODE (src) == SUBREG)
     src = SUBREG_REG (src);
   if (GET_CODE (dest) == SUBREG)

Reply via email to