http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46259
--- Comment #6 from H.J. Lu <hjl.tools at gmail dot com> 2010-11-01 16:21:11 UTC --- (In reply to comment #5) > If I had to guess, one of these two hunks is probably responsible: > > > --- trunk/gcc/tree-vect-stmts.c 2010/10/31 01:58:12 166101 > +++ trunk/gcc/tree-vect-stmts.c 2010/10/31 02:20:22 166102 > @@ -987,9 +987,7 @@ > loop_vec_info loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_vinfo); > tree vec_inv; > tree vec_cst; > - tree t = NULL_TREE; > tree def; > - int i; > enum vect_def_type dt; > bool is_simple_use; > tree vector_type; > @@ -1055,13 +1049,7 @@ > if (vect_print_dump_info (REPORT_DETAILS)) > fprintf (vect_dump, "Create vector_inv."); > > - for (i = nunits - 1; i >= 0; --i) > - { > - t = tree_cons (NULL_TREE, def, t); > - } > - > - /* FIXME: use build_constructor directly. */ > - vec_inv = build_constructor_from_list (vector_type, t); > + vec_inv = build_vector_from_val (vector_type, def); > return vect_init_vector (stmt, vec_inv, vector_type, NULL); > } > Revert this patch fixes the problem.