]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
tree-optimization/122131 - do not use re-align load for gathers
authorRichard Biener <rguenther@suse.de>
Mon, 6 Oct 2025 07:53:07 +0000 (09:53 +0200)
committerRichard Biener <rguenther@suse.de>
Mon, 6 Oct 2025 13:01:14 +0000 (15:01 +0200)
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.

gcc/testsuite/gcc.target/powerpc/altivec-39.c [new file with mode: 0644]
gcc/tree-vect-data-refs.cc

diff --git a/gcc/testsuite/gcc.target/powerpc/altivec-39.c b/gcc/testsuite/gcc.target/powerpc/altivec-39.c
new file mode 100644 (file)
index 0000000..3263eb7
--- /dev/null
@@ -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;
+}
index a31ff93bbd3c2e4f5a6ed74a411f58f2bdb0183b..c40a52059112adae770d0543a556645f478f74db 100644 (file)
@@ -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