gcc_unreachable ();
}
- tree saved_vectype = STMT_VINFO_VECTYPE (stmt_info);
- STMT_VINFO_VECTYPE (stmt_info) = SLP_TREE_VECTYPE (node);
+ if (! STMT_VINFO_DATA_REF (stmt_info))
+ STMT_VINFO_VECTYPE (stmt_info) = NULL_TREE;
+ else
+ STMT_VINFO_VECTYPE (stmt_info) = SLP_TREE_VECTYPE (node);
if (STMT_VINFO_RELEVANT_P (stmt_info))
{
gcall *call = dyn_cast <gcall *> (stmt_info->stmt);
- gcc_assert (STMT_VINFO_VECTYPE (stmt_info)
+ gcc_assert (SLP_TREE_VECTYPE (node)
|| gimple_code (stmt_info->stmt) == GIMPLE_COND
|| (call && gimple_call_lhs (call) == NULL_TREE));
}
}
- STMT_VINFO_VECTYPE (stmt_info) = saved_vectype;
-
if (!ok)
return opt_result::failure_at (stmt_info->stmt,
"not vectorized:"
dump_printf_loc (MSG_NOTE, vect_location,
"------>vectorizing statement: %G", stmt_info->stmt);
- tree saved_vectype = STMT_VINFO_VECTYPE (stmt_info);
- STMT_VINFO_VECTYPE (stmt_info) = SLP_TREE_VECTYPE (slp_node);
+ if (! STMT_VINFO_DATA_REF (stmt_info))
+ STMT_VINFO_VECTYPE (stmt_info) = NULL_TREE;
+ else
+ STMT_VINFO_VECTYPE (stmt_info) = SLP_TREE_VECTYPE (slp_node);
switch (SLP_TREE_TYPE (slp_node))
{
gcc_assert (done);
}
- STMT_VINFO_VECTYPE (stmt_info) = saved_vectype;
-
return is_store;
}