tree-optimization/102905 - restore re-align load for alignment peeling
Commit Message
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 <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 | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
@@ -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,