From: Richard Biener Date: Thu, 28 Oct 2021 08:07:40 +0000 (+0200) Subject: tree-optimization/102949 - fix base object alignment X-Git-Tag: basepoints/gcc-13~3550 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=eed248bb8cc3091e8a9b2f73138c691396752438;p=thirdparty%2Fgcc.git tree-optimization/102949 - fix base object alignment This fixes fallout of g:4703182a06b831a9 where we now silently fail to force alignment of a base object. The fix is to look at the dr_info of the group leader to be consistent with alignment analysis. 2021-10-28 Richard Biener PR tree-optimization/102949 * tree-vect-stmts.c (ensure_base_align): Look at the dr_info of a group leader and assert we are looking at one with analyzed alignment. --- diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c index bf07e7a94956..03cc7267cf80 100644 --- a/gcc/tree-vect-stmts.c +++ b/gcc/tree-vect-stmts.c @@ -6338,8 +6338,12 @@ vectorizable_operation (vec_info *vinfo, static void ensure_base_align (dr_vec_info *dr_info) { - if (dr_info->misalignment == DR_MISALIGNMENT_UNINITIALIZED) - return; + /* Alignment is only analyzed for the first element of a DR group, + use that to look at base alignment we need to enforce. */ + if (STMT_VINFO_GROUPED_ACCESS (dr_info->stmt)) + dr_info = STMT_VINFO_DR_INFO (DR_GROUP_FIRST_ELEMENT (dr_info->stmt)); + + gcc_assert (dr_info->misalignment != DR_MISALIGNMENT_UNINITIALIZED); if (dr_info->base_misaligned) {