diff options
author | Richard Biener <rguenther@suse.de> | 2023-11-08 15:42:16 +0100 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2023-11-08 16:35:37 +0100 |
commit | 39d81b667373b0033f44702a4b532a4618dde9ff (patch) | |
tree | 1cb03a986dc0291f4f8aebc42c340fe41d8333ee /gcc | |
parent | 38168bb69f8ed2b5d3e2e66a3813435230f83293 (diff) | |
download | gcc-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.cc | 2 |
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); |