This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tree-optimization/33866] [4.3 Regression] ICE in vect_get_vec_def_for_stmt_copy, at tree-vect-transform.c:1937



------- 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]