Index: gcc/combine.c
===================================================================
--- gcc/combine.c	2012-11-02 08:15:57.000000000 +0000
+++ gcc/combine.c	2012-11-02 08:22:07.702369220 +0000
@@ -7022,6 +7022,8 @@ make_extraction (enum machine_mode mode,
       if (new_rtx != 0)
 	return gen_rtx_ASHIFT (mode, new_rtx, XEXP (inner, 1));
     }
+  else if (GET_CODE (inner) == TRUNCATE)
+    inner = XEXP (inner, 0);
 
   inner_mode = GET_MODE (inner);
 
