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
