[PATCH] Fix PR91790 by considering different first_stmt_info for realign
authorKewen Lin <linkw@gcc.gnu.org>
Wed, 27 Nov 2019 09:08:20 +0000 (09:08 +0000)
committerKewen Lin <linkw@gcc.gnu.org>
Wed, 27 Nov 2019 09:08:20 +0000 (09:08 +0000)
commit1f9fae28095488a9accd1e7688116ed4d145b03f
tree48e7238b193350c87b3ef4042f14cf3f72c8d8c1
parent66143cdfd1a3575ca5d92a6af788a4eb5c83f1b4
[PATCH] Fix PR91790 by considering different first_stmt_info for realign

As PR91790 exposed, when we have one slp node whose first_stmt_info_for_drptr
is different from first_stmt_info, it's possible that the first_stmt DR isn't
initialized yet before stmt SLP_TREE_SCALAR_STMTS[0] of slp node. So we
shouldn't use first_stmt_info for vect_setup_realignment, instead we can use
the one based on first_stmt_info_for_drptr DR with additional adjustment by
bumping the distance from first_stmt DR.

gcc/ChangeLog

2019-11-27  Kewen Lin  <linkw@gcc.gnu.org>

    PR tree-optimization/91790
    * gcc/tree-vect-stmts.c (vectorizable_load): Use the adjusted DR for
    vect_setup_realignment when first_stmt_info is different from
    first_stmt_info_for_drptr.

From-SVN: r278760
gcc/ChangeLog
gcc/tree-vect-stmts.c