https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94401
--- Comment #6 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Kewen Lin <li...@gcc.gnu.org>: https://gcc.gnu.org/g:81ce375d1fdd99f9d93b00f4895eab74c3d8b54a commit r10-7519-g81ce375d1fdd99f9d93b00f4895eab74c3d8b54a Author: Kewen Lin <li...@linux.ibm.com> Date: Thu Apr 2 08:48:03 2020 -0500 Fix PR94401 by considering reverse overrun The commit r10-7415 brings scalar type consideration to eliminate epilogue peeling for gaps, but it exposed one problem that the current handling doesn't consider the memory access type VMAT_CONTIGUOUS_REVERSE, for which the overrun happens on low address side. This patch is to make the code take care of it by updating the offset and construction element order accordingly. Bootstrapped/regtested on powerpc64le-linux-gnu P8 and aarch64-linux-gnu. 2020-04-02 Kewen Lin <li...@gcc.gnu.org> gcc/ChangeLog PR tree-optimization/94401 * tree-vect-loop.c (vectorizable_load): Handle VMAT_CONTIGUOUS_REVERSE access type when loading halves of vector to avoid peeling for gaps.