aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2023-11-08 16:32:11 +0100
committerRichard Biener <rguenther@suse.de>2023-11-09 08:44:06 +0100
commitf586515accd0bafffba88ab906c6c43534a2ad94 (patch)
tree0cdecb8f770553df62ae139de04fe6dd73d7890b
parent04d8a47608dcae7f61805e3566e3a1571b574405 (diff)
downloadgcc-f586515accd0bafffba88ab906c6c43534a2ad94.zip
gcc-f586515accd0bafffba88ab906c6c43534a2ad94.tar.gz
gcc-f586515accd0bafffba88ab906c6c43534a2ad94.tar.bz2
Fix SIMD clone SLP a bit more
The following fixes an omission, mangling the non-SLP and SLP simd-clone info. * tree-vect-stmts.cc (vectorizable_simd_clone_call): Record to the correct simd_clone_info.
-rw-r--r--gcc/tree-vect-stmts.cc9
1 files changed, 4 insertions, 5 deletions
diff --git a/gcc/tree-vect-stmts.cc b/gcc/tree-vect-stmts.cc
index 913a4fb..8cd02af 100644
--- a/gcc/tree-vect-stmts.cc
+++ b/gcc/tree-vect-stmts.cc
@@ -4388,16 +4388,15 @@ vectorizable_simd_clone_call (vec_info *vinfo, stmt_vec_info stmt_info,
case SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP:
case SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP:
{
- auto &clone_info = STMT_VINFO_SIMD_CLONE_INFO (stmt_info);
- clone_info.safe_grow_cleared (i * 3 + 1, true);
- clone_info.safe_push (arginfo[i].op);
+ simd_clone_info.safe_grow_cleared (i * 3 + 1, true);
+ simd_clone_info.safe_push (arginfo[i].op);
tree lst = POINTER_TYPE_P (TREE_TYPE (arginfo[i].op))
? size_type_node : TREE_TYPE (arginfo[i].op);
tree ls = build_int_cst (lst, arginfo[i].linear_step);
- clone_info.safe_push (ls);
+ simd_clone_info.safe_push (ls);
tree sll = arginfo[i].simd_lane_linear
? boolean_true_node : boolean_false_node;
- clone_info.safe_push (sll);
+ simd_clone_info.safe_push (sll);
}
break;
case SIMD_CLONE_ARG_TYPE_MASK: