Index: gcc/simplify-rtx.c
===================================================================
--- gcc/simplify-rtx.c	(revision 206792)
+++ gcc/simplify-rtx.c	(working copy)
@@ -6057,7 +6057,8 @@ simplify_subreg (enum machine_mode outer
          have instruction to move the whole thing.  */
       && (! MEM_VOLATILE_P (op)
 	  || ! have_insn_for (SET, innermode))
-      && GET_MODE_SIZE (outermode) <= GET_MODE_SIZE (GET_MODE (op)))
+      && GET_MODE_SIZE (outermode) <= GET_MODE_SIZE (GET_MODE (op))
+      && !VECTOR_MODE_P (GET_MODE (XEXP (op, 0))))
     return adjust_address_nv (op, outermode, byte);
 
   /* Handle complex values represented as CONCAT
