On Fri, Jan 31, 2014 at 09:41:59AM +0100, Richard Biener wrote:
> Is that because si and pattern_def_si point to the same stmts? Then
> I'd prefer to do
>
> if (is_store)
> {
> ...
> pattern_def_seq = NULL;
> }
> else if (!transform_pattern_stmt && gsi_end_p (pattern_def_si))
> {
> pattern_def_seq = NULL;
> gsi_next (&si);
> }
Yeah, I think stores can only appear at the end of patterns, so IMHO it should
be
safe to just clear pattern_def_seq always in that case. Right now the code
has continue; separately for STMT_VINFO_GROUPED_ACCESS (stmt_info) and
for !STMT_VINFO_GROUPED_ACCESS (stmt_info) stores, but I guess you should
just move them at the end of if (is_store) and clear pattern_def_seq there
before the continue. Add gcc_assert (!transform_pattern_stmt); too?
Jakub