diff --git a/gcc/testsuite/gfortran.dg/vect/pr116956.f90 b/gcc/testsuite/gfortran.dg/vect/pr116956.f90 new file mode 100644 index 00000000000..3ce4d1ab792 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/vect/pr116956.f90 @@ -0,0 +1,11 @@ +! { dg-do compile } +! { dg-require-effective-target vect_int } +! { dg-additional-options "-mcpu=neoverse-v2 -Ofast" { target aarch64*-*-* } } + +SUBROUTINE nesting_offl_init(u, v, mask) + IMPLICIT NONE + real :: u(:) + real :: v(:) + integer :: mask(:) + u = MERGE( u, v, BTEST (mask, 1) ) +END SUBROUTINE nesting_offl_init diff --git a/gcc/tree-vectorizer.cc b/gcc/tree-vectorizer.cc index fed12c41f9c..0c471c5580d 100644 --- a/gcc/tree-vectorizer.cc +++ b/gcc/tree-vectorizer.cc @@ -610,6 +610,8 @@ vec_info::move_dr (stmt_vec_info new_stmt_info, stmt_vec_info old_stmt_info) = STMT_VINFO_DR_WRT_VEC_LOOP (old_stmt_info); STMT_VINFO_GATHER_SCATTER_P (new_stmt_info) = STMT_VINFO_GATHER_SCATTER_P (old_stmt_info); + STMT_VINFO_STRIDED_P (new_stmt_info) + = STMT_VINFO_STRIDED_P (old_stmt_info); } /* Permanently remove the statement described by STMT_INFO from the