From 26b5062be991cf709c7c628061a40a48e1bca681 Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Tue, 5 Jan 2021 14:38:15 +0100 Subject: [PATCH] tree-optimization/98428 - avoid pre-existing vectors for loop SLP It wasn't supposed to be enabled and appearantly copying around the checking messed up the condition. 2021-01-05 Richard Biener PR tree-optimization/98428 * tree-vect-slp.c (vect_build_slp_tree_1): Properly reject vector lane extracts for loop vectorization. --- gcc/tree-vect-slp.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gcc/tree-vect-slp.c b/gcc/tree-vect-slp.c index 2c2cf637e73..67aaa7b0a6a 100644 --- a/gcc/tree-vect-slp.c +++ b/gcc/tree-vect-slp.c @@ -1096,11 +1096,10 @@ vect_build_slp_tree_1 (vec_info *vinfo, unsigned char *swap, && rhs_code == BIT_FIELD_REF) { tree vec = TREE_OPERAND (gimple_assign_rhs1 (stmt), 0); - if (TREE_CODE (vec) != SSA_NAME + if (!is_a (vinfo) + || TREE_CODE (vec) != SSA_NAME || !types_compatible_p (vectype, TREE_TYPE (vec))) { - if (is_a (vinfo) && i != 0) - continue; if (dump_enabled_p ()) dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location, "Build SLP failed: " -- 2.30.2