diff --git a/gcc/testsuite/gfortran.dg/vect/pr99924.f90 b/gcc/testsuite/gfortran.dg/vect/pr99924.f90 new file mode 100644 index 00000000000..f271ea1d0d5 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/vect/pr99924.f90 @@ -0,0 +1,12 @@ +! { dg-do compile } +! { dg-additional-options "-march=armv8.3-a" { target aarch64-*-* } } +subroutine cunhj (tfn, asum, bsum) + implicit none + complex :: up, tfn, asum, bsum + real :: ar + + up = tfn * ar + bsum = up + ar + asum = up + asum + return +end subroutine cunhj diff --git a/gcc/tree-vect-slp.c b/gcc/tree-vect-slp.c index ceec7f5c410..58dedfc35b7 100644 --- a/gcc/tree-vect-slp.c +++ b/gcc/tree-vect-slp.c @@ -4224,7 +4224,7 @@ vect_bb_partition_graph_r (bb_vec_info bb_vinfo, stmt_instance = instance; } - if (visited.add (node)) + if (!SLP_TREE_SCALAR_STMTS (node).is_empty () && visited.add (node)) return; slp_tree child;