vect: Don't update inits for simd_lane_access DRs [PR102789]
authorKewen Lin <linkw@linux.ibm.com>
Tue, 26 Oct 2021 02:05:02 +0000 (21:05 -0500)
committerKewen Lin <linkw@linux.ibm.com>
Tue, 26 Oct 2021 02:05:02 +0000 (21:05 -0500)
commitf3dbd3f36d55178d0a9e4431043cbc950524969a
tree89e0233e32b3b00f3e6a1d7413ae579decb6f880
parentb621508d6fa97a6fd8f528cc0614837718b54363
vect: Don't update inits for simd_lane_access DRs [PR102789]

As PR102789 shows, when vectorizer does some peelings for alignment
in prologues, function vect_update_inits_of_drs would update the
inits of some drs.  But as the failed case, we shouldn't update the
dr for simd_lane_access, it has the fixed-length storage mainly for
the main loop, the update can make the access out of bound and access
the unexpected element.

gcc/ChangeLog:

PR tree-optimization/102789
* tree-vect-loop-manip.c (vect_update_inits_of_drs): Do not
update inits of simd_lane_access.
gcc/tree-vect-loop-manip.c