]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
tree-optimization/113073 - amend PR112736 fix
authorRichard Biener <rguenther@suse.de>
Tue, 19 Dec 2023 08:58:03 +0000 (09:58 +0100)
committerRichard Biener <rguenther@suse.de>
Tue, 19 Dec 2023 12:31:30 +0000 (13:31 +0100)
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.

PR tree-optimization/113073
* tree-vect-stmts.cc (vectorizable_load): Properly ensure
to exempt only vector-size aligned overreads.

gcc/tree-vect-stmts.cc

index fc6923cf68a4d376649d12116687e612473360b6..e9ff728dfd40c2f69b9ae33ae90d5e3b153c1d38 100644 (file)
@@ -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.  */