Robin Dapp <rd...@linux.vnet.ibm.com> writes: > @@ -1272,12 +1272,40 @@ vect_peeling_hash_get_lowest_cost (_vect_peel_info > **slot, > && !STMT_VINFO_GROUPED_ACCESS (stmt_info)) > continue; > > + int save_misalignment; > save_misalignment = DR_MISALIGNMENT (dr); > - vect_update_misalignment_for_peel (dr, elem->dr, elem->npeel); > - vect_get_data_access_cost (dr, &inside_cost, &outside_cost, > - &body_cost_vec); > + if (dr == dr0 && npeel == vf / 2) > + SET_DR_MISALIGNMENT (dr, 0); > + else > + vect_update_misalignment_for_peel (dr, dr0, npeel); > + vect_get_data_access_cost (dr, inside_cost, outside_cost, > + body_cost_vec); > SET_DR_MISALIGNMENT (dr, save_misalignment); > }
Not sure I've understood the series TBH, but is the npeel == vf / 2 there specifically for the "unknown number of peels" case? How do we distinguish that from the case in which the number of peels is known to be vf / 2 at compile time? Or have I missed the point completely? (probably yes, sorry!) Thanks, Richard