aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2023-11-08 15:42:16 +0100
committerRichard Biener <rguenther@suse.de>2023-11-08 16:35:37 +0100
commit39d81b667373b0033f44702a4b532a4618dde9ff (patch)
tree1cb03a986dc0291f4f8aebc42c340fe41d8333ee /gcc
parent38168bb69f8ed2b5d3e2e66a3813435230f83293 (diff)
downloadgcc-39d81b667373b0033f44702a4b532a4618dde9ff.zip
gcc-39d81b667373b0033f44702a4b532a4618dde9ff.tar.gz
gcc-39d81b667373b0033f44702a4b532a4618dde9ff.tar.bz2
Fix SLP of emulated gathers
The following fixes an error in the SLP of emulated gathers, discovered by x86 specific tests when enabling single-lane SLP. * tree-vect-stmts.cc (vectorizable_load): Adjust offset vector gathering for SLP of emulated gathers.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/tree-vect-stmts.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/tree-vect-stmts.cc b/gcc/tree-vect-stmts.cc
index 61e23b2..913a4fb 100644
--- a/gcc/tree-vect-stmts.cc
+++ b/gcc/tree-vect-stmts.cc
@@ -11163,7 +11163,7 @@ vectorizable_load (vec_info *vinfo,
than the data vector for now. */
unsigned HOST_WIDE_INT factor
= const_offset_nunits / const_nunits;
- vec_offset = vec_offsets[j / factor];
+ vec_offset = vec_offsets[(vec_num * j + i) / factor];
unsigned elt_offset = (j % factor) * const_nunits;
tree idx_type = TREE_TYPE (TREE_TYPE (vec_offset));
tree scale = size_int (gs_info.scale);