https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126410
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot
gnu.org
--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> ---
The issue is that we call ensure_base_align when costing only. Fix:
diff --git a/gcc/tree-vect-stmts.cc b/gcc/tree-vect-stmts.cc
index 488b9754bed..c5a86d3a1a4 100644
--- a/gcc/tree-vect-stmts.cc
+++ b/gcc/tree-vect-stmts.cc
@@ -8304,7 +8304,8 @@ vectorizable_store (vec_info *vinfo,
/* Transform. */
- ensure_base_align (dr_info);
+ if (!costing_p)
+ ensure_base_align (dr_info);
if (STMT_VINFO_SIMD_LANE_ACCESS_P (stmt_info) >= 3)
{
@@ -9986,7 +9987,8 @@ vectorizable_load (vec_info *vinfo,
/* Transform. */
dr_vec_info *dr_info = STMT_VINFO_DR_INFO (stmt_info), *first_dr_info =
NULL;
- ensure_base_align (dr_info);
+ if (!costing_p)
+ ensure_base_align (dr_info);
if (memory_access_type == VMAT_INVARIANT)
{