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(-) diff --git a/gcc/tree-vect-stmts.cc b/gcc/tree-vect-stmts.cc index fc6923cf68a..e9ff728dfd4 100644 --- a/gcc/tree-vect-stmts.cc +++ b/gcc/tree-vect-stmts.cc @@ -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. */ -- 2.35.3