diff options
author | Nathan Froyd <froydnj@gcc.gnu.org> | 2010-11-01 18:58:30 +0000 |
---|---|---|
committer | Nathan Froyd <froydnj@gcc.gnu.org> | 2010-11-01 18:58:30 +0000 |
commit | e7e9eb2f27fb3bc9b95de1881e5461c1133a25bc (patch) | |
tree | 9735446d963776d1da355444a3a00df028cd2e7b /gcc/tree-vect-stmts.c | |
parent | d0d7f522e8ae999d4d31b9906626f87209785811 (diff) | |
download | gcc-e7e9eb2f27fb3bc9b95de1881e5461c1133a25bc.zip gcc-e7e9eb2f27fb3bc9b95de1881e5461c1133a25bc.tar.gz gcc-e7e9eb2f27fb3bc9b95de1881e5461c1133a25bc.tar.bz2 |
re PR tree-optimization/46259 (Revision 166102 failed 416.gamess in SPEC CPU 2006)
gcc/
2010-11-01 Nathan Froyd <froydnj@codesourcery.com>
PR tree-optimization/46259
Revert:
2010-10-30 Nathan Froyd <froydnj@codesourcery.com>
* tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
build_vector_from_val.
gcc/testsuite/
2010-11-01 H.J. Lu <hongjiu.lu@intel.com>
Nathan Froyd <froydnj@codesourcery.com>
PR tree-optimization/46259
* gfortran.dg/pr46259.f: New testcase.
From-SVN: r166139
Diffstat (limited to 'gcc/tree-vect-stmts.c')
-rw-r--r-- | gcc/tree-vect-stmts.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c index 67e9e2b..183bb11 100644 --- a/gcc/tree-vect-stmts.c +++ b/gcc/tree-vect-stmts.c @@ -987,7 +987,9 @@ vect_get_vec_def_for_operand (tree op, gimple stmt, tree *scalar_def) 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; @@ -1049,7 +1051,13 @@ vect_get_vec_def_for_operand (tree op, gimple stmt, tree *scalar_def) if (vect_print_dump_info (REPORT_DETAILS)) fprintf (vect_dump, "Create vector_inv."); - vec_inv = build_vector_from_val (vector_type, def); + 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); return vect_init_vector (stmt, vec_inv, vector_type, NULL); } |