This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/33866] [4.3 Regression] ICE in vect_get_vec_def_for_stmt_copy, at tree-vect-transform.c:1937
- From: "irar at il dot ibm dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 24 Oct 2007 07:48:07 -0000
- Subject: [Bug tree-optimization/33866] [4.3 Regression] ICE in vect_get_vec_def_for_stmt_copy, at tree-vect-transform.c:1937
- References: <bug-33866-12387@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #4 from irar at il dot ibm dot com 2007-10-24 07:48 -------
In this testcase we perform vectorization of strided accesses in a loop with
multiple types. In vectorizable_store() we gather all the scalar operands of
the stores in the strided accesses group and later call
vect_get_vec_def_for_stmt_copy () to get vectorized copies for the scalar
operands. We (erroneously) assumed that the def stmts of those scalars stmts
are of the the same type, i.e., either they all are loop invariants or loop
variants. But this is not the case here:
points[num_points_36][0] = start$0_20(D);
D.1561_14 = (long int) j_35;
D.1563_16 = D.1561_14 + start$1_19(D);
points[num_points_36][1] = D.1563_16;
start$0_20(D) is loop invariant, while D.1563_16 is not.
I am working on a fix.
Ira
--
irar at il dot ibm dot com changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
Last reconfirmed|0000-00-00 00:00:00 |2007-10-24 07:48:07
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33866