tree-optimization/113073 - amend PR112736 fix
Checks
Commit Message
The PR112736 testcase fails on RISC-V because the aligned exception
uses the wrong check. The alignment support scheme can be
dr_aligned even when the access isn't aligned to the vector size
but some targets are happy with element alignment. The following
fixes that.
Bootstrapped and tested on x86_64-unknown-linux-gnu, pushed.
PR tree-optimization/113073
* tree-vect-stmts.cc (vectorizable_load): Properly ensure
to exempt only vector-size aligned overreads.
---
gcc/tree-vect-stmts.cc | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
@@ -11476,7 +11476,9 @@ vectorizable_load (vec_info *vinfo,
- (group_size * vf - gap), nunits))
/* DR will be unused. */
ltype = NULL_TREE;
- else if (alignment_support_scheme == dr_aligned)
+ else if (known_ge (vect_align,
+ tree_to_poly_uint64
+ (TYPE_SIZE_UNIT (vectype))))
/* Aligned access to excess elements is OK if
at least one element is accessed in the
scalar loop. */