]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
tree-optimization/102905 - restore re-align load for alignment peeling
authorRichard Biener <rguenther@suse.de>
Mon, 25 Oct 2021 09:33:10 +0000 (11:33 +0200)
committerRichard Biener <rguenther@suse.de>
Mon, 25 Oct 2021 10:49:24 +0000 (12:49 +0200)
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.

2021-10-25  Richard Biener  <rguenther@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

index 556ae9725f13c653054d397dbcc0fb1c8a629ba9..cbcd4b80246200646860c5305dd498d3458215d2 100644 (file)
@@ -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,