From 7b64f757a8df8efd989000baa667279f8957442e Mon Sep 17 00:00:00 2001 From: Richard Biener <rguenther@suse.de> Date: Mon, 20 Jan 2025 14:25:31 +0100 Subject: [PATCH] tree-optimization/117875 - missed SLP vectorization There's a discrepancy in SLP vs non-SLP vectorization that SLP build does not handle plain SSA copies (which should have been elimiated earlier). But this now bites back since non-SLP happily handles them, causing a regression with --param vect-force-slp=1 which is now default, resulting in a big performance regression in 456.hmmer. So the following restores parity between SLP and non-SLP here, defering the missed copy elimination to later (PR118565). PR tree-optimization/117875 * tree-vect-slp.cc (vect_build_slp_tree_1): Handle SSA copies. --- gcc/tree-vect-slp.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gcc/tree-vect-slp.cc b/gcc/tree-vect-slp.cc index 1d8e62e2fc19..5d9a206f8f58 100644 --- a/gcc/tree-vect-slp.cc +++ b/gcc/tree-vect-slp.cc @@ -1522,7 +1522,8 @@ vect_build_slp_tree_1 (vec_info *vinfo, unsigned char *swap, && TREE_CODE_CLASS (tree_code (rhs_code)) != tcc_comparison && rhs_code != VIEW_CONVERT_EXPR && rhs_code != CALL_EXPR - && rhs_code != BIT_FIELD_REF) + && rhs_code != BIT_FIELD_REF + && rhs_code != SSA_NAME) { if (dump_enabled_p ()) dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location, -- GitLab