Previous refactoring made the possibility of considering re-aligned loads for unlimited cost model alignment peeling difficult so I ditched that. Later refactoring made it easily possible again so the following patch re-instantiates this which should fix the observed regression on powerpc with altivec.
Bootstrapped and tested on x86_64-unknown-linux-gnu, pushed. 2021-10-25 Richard Biener <rguent...@suse.de> PR tree-optimization/102905 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Use vect_supportable_dr_alignment again to determine whether an access is supported when not aligned. --- gcc/tree-vect-data-refs.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gcc/tree-vect-data-refs.c b/gcc/tree-vect-data-refs.c index 556ae9725f1..cbcd4b80246 100644 --- a/gcc/tree-vect-data-refs.c +++ b/gcc/tree-vect-data-refs.c @@ -1994,9 +1994,8 @@ vect_enhance_data_refs_alignment (loop_vec_info loop_vinfo) prune all entries from the peeling hashtable which cause DRs to be not supported. */ bool supportable_if_not_aligned - = targetm.vectorize.support_vector_misalignment - (TYPE_MODE (vectype), TREE_TYPE (DR_REF (dr_info->dr)), - DR_MISALIGNMENT_UNKNOWN, false); + = vect_supportable_dr_alignment + (loop_vinfo, dr_info, vectype, DR_MISALIGNMENT_UNKNOWN); while (known_le (npeel_tmp, nscalars)) { vect_peeling_hash_insert (&peeling_htab, loop_vinfo, -- 2.31.1