diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 88fcb16da45c38e22c8ee301de066e72dad0b835..52b3a4dc765de1aa47c853c7c42f09cec4e58226 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,9 @@
 2013-02-27  Jakub Jelinek  <jakub@redhat.com>
 
+	PR middle-end/56461
+	* tree-vect-loop.c (vectorizable_reduction): Release vect_defs
+	vector.
+
 	PR middle-end/56461
 	* ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
 	FOR_EACH_DEFINED_FUNCTION when freeing state.
diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c
index 3693cd27a961a043003d2534950fed8617085842..6f71016080ef4eb7991a14015b7cf8ca196a9dd5 100644
--- a/gcc/tree-vect-loop.c
+++ b/gcc/tree-vect-loop.c
@@ -5209,6 +5209,7 @@ vectorizable_reduction (gimple stmt, gimple_stmt_iterator *gsi,
                                     double_reduc, slp_node);
 
   phis.release ();
+  vect_defs.release ();
   vec_oprnds0.release ();
   vec_oprnds1.release ();