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.

Reply via email to