https://gcc.gnu.org/g:9b102d2e1e32e59bb2b5b8060998236d277773c7

commit r16-4248-g9b102d2e1e32e59bb2b5b8060998236d277773c7
Author: Richard Biener <[email protected]>
Date:   Mon Oct 6 09:53:07 2025 +0200

    tree-optimization/122131 - do not use re-align load for gathers
    
    As we now ask vect_supportable_dr_alignment for gathers avoid using
    (optimized) re-align instructions for them.
    
            PR tree-optimization/122131
            * tree-vect-data-refs.cc (vect_supportable_dr_alignment): Do
            not use re-align loads for gathers.
    
            * gcc.target/powerpc/altivec-39.c: New testcase.

Diff:
---
 gcc/testsuite/gcc.target/powerpc/altivec-39.c | 17 +++++++++++++++++
 gcc/tree-vect-data-refs.cc                    |  2 +-
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/gcc/testsuite/gcc.target/powerpc/altivec-39.c 
b/gcc/testsuite/gcc.target/powerpc/altivec-39.c
new file mode 100644
index 000000000000..3263eb7bbc61
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/altivec-39.c
@@ -0,0 +1,17 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -maltivec" } */
+/* { dg-require-effective-target powerpc_altivec } */
+
+char *sort_filesquote_name_buf_plimit;
+int sort_filesquote_name_buf_width;
+int *__ctype_b_loc() __attribute__((__const__));
+void sort_filesquote_name_buf(char* p)
+{
+  unsigned displayed_width = 0;
+  while (p < sort_filesquote_name_buf_plimit) {
+    if (__ctype_b_loc()[*p])
+      displayed_width++;
+    p++;
+  }
+  sort_filesquote_name_buf_width = displayed_width;
+}
diff --git a/gcc/tree-vect-data-refs.cc b/gcc/tree-vect-data-refs.cc
index a31ff93bbd3c..c40a52059112 100644
--- a/gcc/tree-vect-data-refs.cc
+++ b/gcc/tree-vect-data-refs.cc
@@ -6610,7 +6610,7 @@ vect_supportable_dr_alignment (vec_info *vinfo, 
dr_vec_info *dr_info,
         }
     } */
 
-  if (DR_IS_READ (dr))
+  if (DR_IS_READ (dr) && !is_gather_scatter)
     {
       if (can_implement_p (vec_realign_load_optab, mode)
          && (!targetm.vectorize.builtin_mask_for_load

Reply via email to