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

Reply via email to