Committed, thanks Kito. Pan
-----Original Message----- From: Gcc-patches <gcc-patches-bounces+pan2.li=intel....@gcc.gnu.org> On Behalf Of Kito Cheng via Gcc-patches Sent: Thursday, September 7, 2023 11:39 AM To: Juzhe-Zhong <juzhe.zh...@rivai.ai> Cc: GCC Patches <gcc-patches@gcc.gnu.org>; Kito Cheng <kito.ch...@sifive.com> Subject: Re: [PATCH] RISC-V: Remove incorrect earliest vsetvl post optimization[PR111313] LGTM Juzhe-Zhong <juzhe.zh...@rivai.ai> 於 2023年9月7日 週四 11:36 寫道: > This patch removes the incorrect earliest poset vsetvl optimization, > such bug was found in vect-double-reduc-5.c which is runtime(execution > fail) and also in PR111313. > > For VLMAX intrinsics, we always emit a bogus patter which is vlmax_avl > (see vector.md) to > occupy a scalar register which is used by the following RVV instruction > which is VLMAX AVL. > > Then for O2, O3, Ofast, earliest LCM works so well. > However, for O1, the vlmax_avl is not well optimized in the before pass > which confused LCM earliest > so that we will end up with some redundant vsetvli zero,zero instructions > in O1. (Note that O2 O3 Ofast are all good). > > To elide those redundant vsetvli zero,zero, I added > cleanup_earliest_vsetvls to elide those redundant vsetvls. > > Now, after I review the implementation of this post optimizaiton again, I > found it is incorrect and it is hard to > do the post optimizations for vsetvls that earliest LCM failed to > eliminate. > > Besides, such performance issues only happen in O1 or O0, such issues may > not be serious. > So remove it and we may will find another way (E.g. adjust vlmax_avl > pattern COST) > to optimize it if we really need to care about performance for O1. > > PR target/111313 > > gcc/ChangeLog: > > * config/riscv/riscv-vsetvl.cc > (pass_vsetvl::cleanup_earliest_vsetvls): Remove. > (pass_vsetvl::df_post_optimization): Remove incorrect function. > > gcc/testsuite/ChangeLog: > > * gcc.target/riscv/rvv/vsetvl/avl_single-13.c: Adapt test. > * gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-17.c: Skip check for > O1. > * gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-18.c: Ditto. > * gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-19.c: Ditto. > * gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-20.c: Ditto. > * gcc.target/riscv/rvv/vsetvl/vlmax_phi-1.c: Ditto. > * gcc.target/riscv/rvv/vsetvl/vlmax_phi-10.c: Ditto. > * gcc.target/riscv/rvv/vsetvl/vlmax_phi-11.c: Ditto. > * gcc.target/riscv/rvv/vsetvl/vlmax_phi-12.c: Ditto. > * gcc.target/riscv/rvv/vsetvl/vlmax_phi-13.c: Ditto. > * gcc.target/riscv/rvv/vsetvl/vlmax_phi-14.c: Ditto. > * gcc.target/riscv/rvv/vsetvl/vlmax_phi-15.c: Ditto. > * gcc.target/riscv/rvv/vsetvl/vlmax_phi-16.c: Ditto. > * gcc.target/riscv/rvv/vsetvl/vlmax_phi-17.c: Ditto. > * gcc.target/riscv/rvv/vsetvl/vlmax_phi-18.c: Ditto. > * gcc.target/riscv/rvv/vsetvl/vlmax_phi-19.c: Ditto. > * gcc.target/riscv/rvv/vsetvl/vlmax_phi-2.c: Ditto. > * gcc.target/riscv/rvv/vsetvl/vlmax_phi-20.c: Ditto. > * gcc.target/riscv/rvv/vsetvl/vlmax_phi-21.c: Ditto. > * gcc.target/riscv/rvv/vsetvl/vlmax_phi-22.c: Ditto. > * gcc.target/riscv/rvv/vsetvl/vlmax_phi-23.c: Ditto. > * gcc.target/riscv/rvv/vsetvl/vlmax_phi-24.c: Ditto. > * gcc.target/riscv/rvv/vsetvl/vlmax_phi-25.c: Ditto. > * gcc.target/riscv/rvv/vsetvl/vlmax_phi-26.c: Ditto. > * gcc.target/riscv/rvv/vsetvl/vlmax_phi-27.c: Ditto. > * gcc.target/riscv/rvv/vsetvl/vlmax_phi-28.c: Ditto. > * gcc.target/riscv/rvv/vsetvl/vlmax_phi-3.c: Ditto. > * gcc.target/riscv/rvv/vsetvl/vlmax_phi-4.c: Ditto. > * gcc.target/riscv/rvv/vsetvl/vlmax_phi-5.c: Ditto. > * gcc.target/riscv/rvv/vsetvl/vlmax_phi-6.c: Ditto. > * gcc.target/riscv/rvv/vsetvl/vlmax_phi-7.c: Ditto. > * gcc.target/riscv/rvv/vsetvl/vlmax_phi-8.c: Ditto. > * gcc.target/riscv/rvv/vsetvl/vlmax_phi-9.c: Ditto. > * gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-2.c: Ditto. > * gcc.target/riscv/rvv/autovec/pr111313.c: New test. > > --- > gcc/config/riscv/riscv-vsetvl.cc | 58 ------------------- > .../gcc.target/riscv/rvv/autovec/pr111313.c | 20 +++++++ > .../riscv/rvv/vsetvl/avl_single-13.c | 2 +- > .../riscv/rvv/vsetvl/vlmax_bb_prop-17.c | 8 +-- > .../riscv/rvv/vsetvl/vlmax_bb_prop-18.c | 8 +-- > .../riscv/rvv/vsetvl/vlmax_bb_prop-19.c | 2 +- > .../riscv/rvv/vsetvl/vlmax_bb_prop-20.c | 4 +- > .../gcc.target/riscv/rvv/vsetvl/vlmax_phi-1.c | 2 +- > .../riscv/rvv/vsetvl/vlmax_phi-10.c | 2 +- > .../riscv/rvv/vsetvl/vlmax_phi-11.c | 2 +- > .../riscv/rvv/vsetvl/vlmax_phi-12.c | 2 +- > .../riscv/rvv/vsetvl/vlmax_phi-13.c | 2 +- > .../riscv/rvv/vsetvl/vlmax_phi-14.c | 2 +- > .../riscv/rvv/vsetvl/vlmax_phi-15.c | 2 +- > .../riscv/rvv/vsetvl/vlmax_phi-16.c | 2 +- > .../riscv/rvv/vsetvl/vlmax_phi-17.c | 2 +- > .../riscv/rvv/vsetvl/vlmax_phi-18.c | 2 +- > .../riscv/rvv/vsetvl/vlmax_phi-19.c | 2 +- > .../gcc.target/riscv/rvv/vsetvl/vlmax_phi-2.c | 2 +- > .../riscv/rvv/vsetvl/vlmax_phi-20.c | 2 +- > .../riscv/rvv/vsetvl/vlmax_phi-21.c | 2 +- > .../riscv/rvv/vsetvl/vlmax_phi-22.c | 2 +- > .../riscv/rvv/vsetvl/vlmax_phi-23.c | 2 +- > .../riscv/rvv/vsetvl/vlmax_phi-24.c | 2 +- > .../riscv/rvv/vsetvl/vlmax_phi-25.c | 2 +- > .../riscv/rvv/vsetvl/vlmax_phi-26.c | 2 +- > .../riscv/rvv/vsetvl/vlmax_phi-27.c | 2 +- > .../riscv/rvv/vsetvl/vlmax_phi-28.c | 2 +- > .../gcc.target/riscv/rvv/vsetvl/vlmax_phi-3.c | 2 +- > .../gcc.target/riscv/rvv/vsetvl/vlmax_phi-4.c | 2 +- > .../gcc.target/riscv/rvv/vsetvl/vlmax_phi-5.c | 2 +- > .../gcc.target/riscv/rvv/vsetvl/vlmax_phi-6.c | 2 +- > .../gcc.target/riscv/rvv/vsetvl/vlmax_phi-7.c | 2 +- > .../gcc.target/riscv/rvv/vsetvl/vlmax_phi-8.c | 2 +- > .../gcc.target/riscv/rvv/vsetvl/vlmax_phi-9.c | 2 +- > .../riscv/rvv/vsetvl/vlmax_switch_vtype-2.c | 2 +- > 36 files changed, 61 insertions(+), 99 deletions(-) > create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111313.c > > diff --git a/gcc/config/riscv/riscv-vsetvl.cc > b/gcc/config/riscv/riscv-vsetvl.cc > index dd9aeb32b56..ae362a3f6a8 100644 > --- a/gcc/config/riscv/riscv-vsetvl.cc > +++ b/gcc/config/riscv/riscv-vsetvl.cc > @@ -2846,7 +2846,6 @@ private: > void ssa_post_optimization (void) const; > > /* Phase 6. */ > - bool cleanup_earliest_vsetvls (const basic_block) const; > void df_post_optimization (void) const; > > void init (void); > @@ -4183,61 +4182,6 @@ has_no_uses (basic_block cfg_bb, rtx_insn *rinsn, > int regno) > return true; > } > > -/* For many reasons, we failed to elide the redundant vsetvls > - in Phase 3 and Phase 4. > - > - - VLMAX-AVL case: 'vlmax_avl<mode>' may locate at some unlucky > - point which make us set ANTLOC as false for LCM in 'O1'. > - We don't want to complicate phase 3 and phase 4 too much, > - so we do the post optimization for redundant VSETVLs here. > -*/ > -bool > -pass_vsetvl::cleanup_earliest_vsetvls (const basic_block cfg_bb) const > -{ > - bool is_earliest_p = false; > - if (cfg_bb->index >= (int) m_vector_manager->vector_block_infos.length > ()) > - is_earliest_p = true; > - > - rtx_insn *rinsn > - = get_first_vsetvl_before_rvv_insns (cfg_bb, > VSETVL_VTYPE_CHANGE_ONLY); > - if (!rinsn) > - return is_earliest_p; > - > - sbitmap avail; > - if (is_earliest_p) > - { > - gcc_assert (single_succ_p (cfg_bb) && single_pred_p (cfg_bb)); > - const bb_info *pred_bb = crtl->ssa->bb (single_pred (cfg_bb)); > - gcc_assert (pred_bb->index () > - < m_vector_manager->vector_block_infos.length ()); > - avail = m_vector_manager->vector_avout[pred_bb->index ()]; > - } > - else > - avail = m_vector_manager->vector_avin[cfg_bb->index]; > - > - if (!bitmap_empty_p (avail)) > - { > - unsigned int bb_index; > - sbitmap_iterator sbi; > - vector_insn_info strictest_info = vector_insn_info (); > - EXECUTE_IF_SET_IN_BITMAP (avail, 0, bb_index, sbi) > - { > - const auto *expr = m_vector_manager->vector_exprs[bb_index]; > - if (strictest_info.uninit_p () > - || !expr->compatible_p ( > - static_cast<const vl_vtype_info &> (strictest_info))) > - strictest_info = *expr; > - } > - vector_insn_info info; > - info.parse_insn (rinsn); > - if (!strictest_info.same_vtype_p (info)) > - return is_earliest_p; > - eliminate_insn (rinsn); > - } > - > - return is_earliest_p; > -} > - > /* This function does the following post optimization base on dataflow > analysis: > > @@ -4257,8 +4201,6 @@ pass_vsetvl::df_post_optimization (void) const > rtx_insn *rinsn; > FOR_ALL_BB_FN (cfg_bb, cfun) > { > - if (cleanup_earliest_vsetvls (cfg_bb)) > - continue; > FOR_BB_INSNS (cfg_bb, rinsn) > { > if (NONDEBUG_INSN_P (rinsn) && vsetvl_insn_p (rinsn)) > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111313.c > b/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111313.c > new file mode 100644 > index 00000000000..1da1b8ce6fb > --- /dev/null > +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111313.c > @@ -0,0 +1,20 @@ > +/* { dg-do compile } */ > +/* { dg-options "-march=rv64gcv -mabi=lp64d > --param=riscv-autovec-preference=scalable -O3" } */ > + > +#define K 32 > +short in[2*K][K]; > +short coeff[K][K]; > +void > +foo () > +{ > + for (int j = 0; j < K; j++) > + { > + for (int i = 0; i < 2*K; i++) > + in[i][j] = i+j; > + > + for (int i = 0; i < K; i++) > + coeff[i][j] = i + 2; > + } > +} > + > +/* { dg-final { scan-assembler-times > {vsetvli\s+zero,\s*zero,\s*e16,\s*mf2,\s*t[au],\s*m[au]} 3 } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-13.c > b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-13.c > index 6b0ff255298..984d5593160 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-13.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-13.c > @@ -5,7 +5,7 @@ > > void f (int8_t * restrict in, int8_t * restrict out, int n, int cond) > { > - size_t vl = 101; > + size_t vl = 101 + cond; > for (size_t i = 0; i < n; i++) > { > vint8mf8_t v = __riscv_vle8_v_i8mf8 (in + i, vl); > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-17.c > b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-17.c > index b5b31fdb593..5b2b2e1e32a 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-17.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-17.c > @@ -171,7 +171,7 @@ void f6 (int * restrict in, int * restrict out, int n, > int cond) > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e16,\s*mf4,\s*t[au],\s*m[au]} 2 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" } } } } */ > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e16,\s*mf2,\s*t[au],\s*m[au]} 2 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" } } } } */ > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e32,\s*mf2,\s*t[au],\s*m[au]} 2 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" } } } } */ > -/* { dg-final { scan-assembler-times > {add\ta[0-7],a[0-7],a[0-7]\s+\.L[0-9]\:\s+vle8\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts > "-funroll-loops" no-opts "-g" } } } } */ > -/* { dg-final { scan-assembler-times > {add\ta[0-7],a[0-7],a[0-7]\s+\.L[0-9][0-9]\:\s+vle8\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)} > 2 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts > "-funroll-loops" no-opts "-g" } } } } */ > -/* { dg-final { scan-assembler-times > {add\ta[0-7],a[0-7],a[0-7]\s+\.L[0-9][0-9]\:\s+vle16\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)} > 2 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts > "-funroll-loops" no-opts "-g" } } } } */ > -/* { dg-final { scan-assembler-times > {add\ta[0-7],a[0-7],a[0-7]\s+\.L[0-9][0-9]\:\s+vle32\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts > "-funroll-loops" no-opts "-g" } } } } */ > +/* { dg-final { scan-assembler-times > {add\ta[0-7],a[0-7],a[0-7]\s+\.L[0-9]\:\s+vle8\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" > no-opts "-funroll-loops" no-opts "-g" } } } } */ > +/* { dg-final { scan-assembler-times > {add\ta[0-7],a[0-7],a[0-7]\s+\.L[0-9][0-9]\:\s+vle8\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)} > 2 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" > no-opts "-funroll-loops" no-opts "-g" } } } } */ > +/* { dg-final { scan-assembler-times > {add\ta[0-7],a[0-7],a[0-7]\s+\.L[0-9][0-9]\:\s+vle16\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)} > 2 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" > no-opts "-funroll-loops" no-opts "-g" } } } } */ > +/* { dg-final { scan-assembler-times > {add\ta[0-7],a[0-7],a[0-7]\s+\.L[0-9][0-9]\:\s+vle32\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" > no-opts "-funroll-loops" no-opts "-g" } } } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-18.c > b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-18.c > index d2ec69a76f8..618e81285a1 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-18.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-18.c > @@ -171,7 +171,7 @@ void f6 (int * restrict in, int * restrict out, int n, > int cond) > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e16,\s*mf4,\s*t[au],\s*m[au]} 2 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" } } } } */ > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e16,\s*mf2,\s*t[au],\s*m[au]} 2 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" } } } } */ > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e32,\s*mf2,\s*t[au],\s*m[au]} 2 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" } } } } */ > -/* { dg-final { scan-assembler-times > {add\ta[0-7],a[0-7],a[0-7]\s+\.L[0-9]\:\s+vle8\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts > "-funroll-loops" no-opts "-g" } } } } */ > -/* { dg-final { scan-assembler-times > {add\ta[0-7],a[0-7],a[0-7]\s+\.L[0-9][0-9]\:\s+vle8\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)} > 2 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts > "-funroll-loops" no-opts "-g" } } } } */ > -/* { dg-final { scan-assembler-times > {add\ta[0-7],a[0-7],a[0-7]\s+\.L[0-9][0-9]\:\s+vle16\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)} > 2 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts > "-funroll-loops" no-opts "-g" } } } } */ > -/* { dg-final { scan-assembler-times > {add\ta[0-7],a[0-7],a[0-7]\s+\.L[0-9][0-9]\:\s+vle32\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts > "-funroll-loops" no-opts "-g" } } } } */ > +/* { dg-final { scan-assembler-times > {add\ta[0-7],a[0-7],a[0-7]\s+\.L[0-9]\:\s+vle8\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" > no-opts "-funroll-loops" no-opts "-g" } } } } */ > +/* { dg-final { scan-assembler-times > {add\ta[0-7],a[0-7],a[0-7]\s+\.L[0-9][0-9]\:\s+vle8\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)} > 2 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" > no-opts "-funroll-loops" no-opts "-g" } } } } */ > +/* { dg-final { scan-assembler-times > {add\ta[0-7],a[0-7],a[0-7]\s+\.L[0-9][0-9]\:\s+vle16\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)} > 2 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" > no-opts "-funroll-loops" no-opts "-g" } } } } */ > +/* { dg-final { scan-assembler-times > {add\ta[0-7],a[0-7],a[0-7]\s+\.L[0-9][0-9]\:\s+vle32\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" > no-opts "-funroll-loops" no-opts "-g" } } } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-19.c > b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-19.c > index 9fdc8aee6a1..6bdb2e9d182 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-19.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-19.c > @@ -31,4 +31,4 @@ void f6 (int * restrict in, int * restrict out, int n, > int cond) > } > > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e32,\s*mf2,\s*t[au],\s*m[au]} 2 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" } } } } */ > -/* { dg-final { scan-assembler-times > {add\ta[0-7],a[0-7],a[0-7]\s+\.L[0-9]\:\s+vle32\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts > "-funroll-loops" no-opts "-g" } } } } */ > +/* { dg-final { scan-assembler-times > {add\ta[0-7],a[0-7],a[0-7]\s+\.L[0-9]\:\s+vle32\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" > no-opts "-funroll-loops" no-opts "-g" } } } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-20.c > b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-20.c > index e4caff3f9d1..db4f9a1da86 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-20.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-20.c > @@ -199,5 +199,5 @@ void f7 (int * restrict in, int * restrict out, int n, > int cond) > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e8,\s*m2,\s*t[au],\s*m[au]} 2 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" } } } } */ > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e8,\s*m4,\s*t[au],\s*m[au]} 2 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" } } } } */ > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e8,\s*m8,\s*t[au],\s*m[au]} 2 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" } } } } */ > -/* { dg-final { scan-assembler-times > {add\ta[0-7],a[0-7],a[0-7]\s+\.L[0-9]\:\s+vlm\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts > "-funroll-loops" no-opts "-g" } } } } */ > -/* { dg-final { scan-assembler-times > {add\ta[0-7],a[0-7],a[0-7]\s+\.L[0-9][0-9]\:\s+vlm\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)} > 6 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts > "-funroll-loops" no-opts "-g" } } } } */ > +/* { dg-final { scan-assembler-times > {add\ta[0-7],a[0-7],a[0-7]\s+\.L[0-9]\:\s+vlm\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" > no-opts "-funroll-loops" no-opts "-g" } } } } */ > +/* { dg-final { scan-assembler-times > {add\ta[0-7],a[0-7],a[0-7]\s+\.L[0-9][0-9]\:\s+vlm\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)} > 6 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" > no-opts "-funroll-loops" no-opts "-g" } } } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-1.c > b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-1.c > index 9dc7392556a..830dfb83e6d 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-1.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-1.c > @@ -34,4 +34,4 @@ void f (void * restrict in, void * restrict out, int n, > int cond) > } > > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e8,\s*mf8,\s*t[au],\s*m[au]} 4 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" no-opts "-flto" } } } } */ > -/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,\.L[0-9]+\s*\.L[0-9]+\:\s*vle8\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts > "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > +/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,\.L[0-9]+\s*\.L[0-9]+\:\s*vle8\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" > no-opts "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-10.c > b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-10.c > index e132c036e7d..898dd20b0cc 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-10.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-10.c > @@ -34,4 +34,4 @@ void f (void * restrict in, void * restrict out, int n, > int cond) > } > > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e16,\s*mf2,\s*t[au],\s*m[au]} 4 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" no-opts "-flto" } } } } */ > -/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle16\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts > "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > +/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle16\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" > no-opts "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-11.c > b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-11.c > index 10eb69a676e..24a3f55d92b 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-11.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-11.c > @@ -34,4 +34,4 @@ void f (void * restrict in, void * restrict out, int n, > int cond) > } > > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e32,\s*mf2,\s*t[au],\s*m[au]} 4 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" no-opts "-flto" } } } } */ > -/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle32\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts > "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > +/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle32\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" > no-opts "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-12.c > b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-12.c > index fb13306a13b..f311cbfc12a 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-12.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-12.c > @@ -34,4 +34,4 @@ void f (void * restrict in, void * restrict out, int n, > int cond) > } > > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e32,\s*mf2,\s*t[au],\s*m[au]} 4 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" no-opts "-flto" } } } } */ > -/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle32\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts > "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > +/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle32\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" > no-opts "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-13.c > b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-13.c > index bfa51c0188e..2e0fbc5a817 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-13.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-13.c > @@ -34,4 +34,4 @@ void f (void * restrict in, void * restrict out, int n, > int cond) > } > > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e32,\s*mf2,\s*t[au],\s*m[au]} 4 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" no-opts "-flto" } } } } */ > -/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle32\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts > "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > +/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle32\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" > no-opts "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-14.c > b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-14.c > index 402ec1bbccd..7a0e12f0ff3 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-14.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-14.c > @@ -214,4 +214,4 @@ void f7 (void * restrict in, void * restrict out, int > n, int cond) > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e8,\s*m2,\s*t[au],\s*m[au]} 4 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" no-opts "-flto" } } } } */ > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e8,\s*m4,\s*t[au],\s*m[au]} 4 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" no-opts "-flto" } } } } */ > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e8,\s*m8,\s*t[au],\s*m[au]} 4 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" no-opts "-flto" } } } } */ > -/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s+\.L[0-9]+\:\s+vlm\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 7 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts > "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > +/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s+\.L[0-9]+\:\s+vlm\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 7 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" > no-opts "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-15.c > b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-15.c > index 1389c162f36..f61260780f2 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-15.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-15.c > @@ -37,4 +37,4 @@ void f (void * restrict in, void * restrict out, int n, > int cond) > } > > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e8,\s*mf8,\s*t[au],\s*m[au]} 4 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" no-opts "-flto" } } } } */ > -/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle8\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts > "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > +/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle8\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" > no-opts "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-16.c > b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-16.c > index 5e3dd664931..4dcbf7bd1df 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-16.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-16.c > @@ -37,4 +37,4 @@ void f (void * restrict in, void * restrict out, int n, > int cond) > } > > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e8,\s*mf8,\s*t[au],\s*m[au]} 4 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" no-opts "-flto" } } } } */ > -/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle8\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts > "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > +/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle8\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" > no-opts "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-17.c > b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-17.c > index 0de0549c19f..0e0b67c5c61 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-17.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-17.c > @@ -37,4 +37,4 @@ void f (void * restrict in, void * restrict out, int n, > int cond) > } > > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e8,\s*mf4,\s*t[au],\s*m[au]} 4 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" no-opts "-flto" } } } } */ > -/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle8\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts > "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > +/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle8\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" > no-opts "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-18.c > b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-18.c > index e76f934b8fe..5a5b7d57607 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-18.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-18.c > @@ -37,4 +37,4 @@ void f (void * restrict in, void * restrict out, int n, > int cond) > } > > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e8,\s*mf4,\s*t[au],\s*m[au]} 4 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" no-opts "-flto" } } } } */ > -/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle8\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts > "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > +/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle8\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" > no-opts "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-19.c > b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-19.c > index c544b9b9d14..9e1f9c757c0 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-19.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-19.c > @@ -37,4 +37,4 @@ void f (void * restrict in, void * restrict out, int n, > int cond) > } > > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e8,\s*mf2,\s*t[au],\s*m[au]} 4 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" no-opts "-flto" } } } } */ > -/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s+\.L[0-9]+\:\s+vle8\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts > "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > +/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s+\.L[0-9]+\:\s+vle8\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" > no-opts "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-2.c > b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-2.c > index 7caccee7226..5ac8e179e73 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-2.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-2.c > @@ -34,4 +34,4 @@ void f (void * restrict in, void * restrict out, int n, > int cond) > } > > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e8,\s*mf8,\s*t[au],\s*m[au]} 4 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" no-opts "-flto" } } } } */ > -/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle8\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts > "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > +/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle8\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" > no-opts "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-20.c > b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-20.c > index 5a3c986ade1..5ac73a979eb 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-20.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-20.c > @@ -37,4 +37,4 @@ void f (void * restrict in, void * restrict out, int n, > int cond) > } > > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e8,\s*mf2,\s*t[au],\s*m[au]} 4 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" no-opts "-flto" } } } } */ > -/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s+\.L[0-9]+\:\s+vle8\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts > "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > +/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s+\.L[0-9]+\:\s+vle8\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" > no-opts "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-21.c > b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-21.c > index 5ef9c607038..f79559c48cd 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-21.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-21.c > @@ -37,4 +37,4 @@ void f (void * restrict in, void * restrict out, int n, > int cond) > } > > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e16,\s*mf4,\s*t[au],\s*m[au]} 4 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" no-opts "-flto" } } } } */ > -/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s+\.L[0-9]+\:\s+vle16\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts > "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > +/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s+\.L[0-9]+\:\s+vle16\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" > no-opts "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-22.c > b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-22.c > index 46621b04b9e..a423c5dff28 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-22.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-22.c > @@ -37,4 +37,4 @@ void f (void * restrict in, void * restrict out, int n, > int cond) > } > > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e16,\s*mf4,\s*t[au],\s*m[au]} 4 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" no-opts "-flto" } } } } */ > -/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle16\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts > "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > +/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle16\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" > no-opts "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-23.c > b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-23.c > index 50e484677f0..00d2f82c2d0 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-23.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-23.c > @@ -37,4 +37,4 @@ void f (void * restrict in, void * restrict out, int n, > int cond) > } > > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e16,\s*mf2,\s*t[au],\s*m[au]} 4 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" no-opts "-flto" } } } } */ > -/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle16\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts > "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > +/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle16\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" > no-opts "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-24.c > b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-24.c > index 3d8bdbc1ef0..69f21e5cf95 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-24.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-24.c > @@ -37,4 +37,4 @@ void f (void * restrict in, void * restrict out, int n, > int cond) > } > > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e16,\s*mf2,\s*t[au],\s*m[au]} 4 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" no-opts "-flto" } } } } */ > -/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle16\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts > "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > +/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle16\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" > no-opts "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-25.c > b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-25.c > index c4ffa48fccd..65709cd5f42 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-25.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-25.c > @@ -37,4 +37,4 @@ void f (void * restrict in, void * restrict out, int n, > int cond) > } > > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e32,\s*mf2,\s*t[au],\s*m[au]} 4 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" no-opts "-flto" } } } } */ > -/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle32\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts > "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > +/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle32\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" > no-opts "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-26.c > b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-26.c > index ee4be66b360..4bf37250345 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-26.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-26.c > @@ -37,4 +37,4 @@ void f (void * restrict in, void * restrict out, int n, > int cond) > } > > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e32,\s*mf2,\s*t[au],\s*m[au]} 4 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" no-opts "-flto" } } } } */ > -/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle32\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts > "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > +/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle32\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" > no-opts "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-27.c > b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-27.c > index d521e427b88..cacd290168e 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-27.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-27.c > @@ -37,4 +37,4 @@ void f (void * restrict in, void * restrict out, int n, > int cond) > } > > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e32,\s*mf2,\s*t[au],\s*m[au]} 4 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" no-opts "-flto" } } } } */ > -/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle32\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts > "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > +/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle32\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" > no-opts "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-28.c > b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-28.c > index f215ac5ffba..39e747bd89a 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-28.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-28.c > @@ -234,4 +234,4 @@ void f7 (void * restrict in, void * restrict out, int > n, int cond) > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e8,\s*m2,\s*t[au],\s*m[au]} 4 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" no-opts "-flto" } } } } */ > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e8,\s*m4,\s*t[au],\s*m[au]} 4 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" no-opts "-flto" } } } } */ > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e8,\s*m8,\s*t[au],\s*m[au]} 4 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" no-opts "-flto" } } } } */ > -/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vlm\.v\s*v[0-9]+,0\([a-x0-9]+\)} > 7 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts > "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > +/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vlm\.v\s*v[0-9]+,0\([a-x0-9]+\)} > 7 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" > no-opts "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-3.c > b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-3.c > index 3121f433840..dedadcb5351 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-3.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-3.c > @@ -34,4 +34,4 @@ void f (void * restrict in, void * restrict out, int n, > int cond) > } > > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e8,\s*mf4,\s*t[au],\s*m[au]} 4 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" no-opts "-flto" } } } } */ > -/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle8\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts > "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > +/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle8\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" > no-opts "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-4.c > b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-4.c > index 1009517c609..31be96662a4 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-4.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-4.c > @@ -34,4 +34,4 @@ void f (void * restrict in, void * restrict out, int n, > int cond) > } > > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e8,\s*mf4,\s*t[au],\s*m[au]} 4 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" no-opts "-flto" } } } } */ > -/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle8\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts > "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > +/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle8\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" > no-opts "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-5.c > b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-5.c > index 7c8e5d3d859..5a48b997a71 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-5.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-5.c > @@ -34,4 +34,4 @@ void f (void * restrict in, void * restrict out, int n, > int cond) > } > > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e8,\s*mf2,\s*t[au],\s*m[au]} 4 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" no-opts "-flto" } } } } */ > -/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle8\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts > "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > +/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle8\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" > no-opts "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-6.c > b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-6.c > index 35bb54eaef1..8ea534918ca 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-6.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-6.c > @@ -34,4 +34,4 @@ void f (void * restrict in, void * restrict out, int n, > int cond) > } > > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e8,\s*mf2,\s*t[au],\s*m[au]} 4 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" no-opts "-flto" } } } } */ > -/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle8\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts > "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > +/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle8\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" > no-opts "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-7.c > b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-7.c > index 1d766651ce6..f4fa2696a1d 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-7.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-7.c > @@ -34,4 +34,4 @@ void f (void * restrict in, void * restrict out, int n, > int cond) > } > > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e16,\s*mf4,\s*t[au],\s*m[au]} 4 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" no-opts "-flto" } } } } */ > -/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle16\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts > "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > +/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle16\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" > no-opts "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-8.c > b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-8.c > index 8c401140e82..8526ae610d3 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-8.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-8.c > @@ -34,4 +34,4 @@ void f (void * restrict in, void * restrict out, int n, > int cond) > } > > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e16,\s*mf4,\s*t[au],\s*m[au]} 4 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" no-opts "-flto" } } } } */ > -/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle16\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts > "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > +/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle16\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" > no-opts "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-9.c > b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-9.c > index c6f9c0904cf..42180a70ab4 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-9.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-9.c > @@ -34,4 +34,4 @@ void f (void * restrict in, void * restrict out, int n, > int cond) > } > > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e16,\s*mf2,\s*t[au],\s*m[au]} 4 { target { > no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts > "-g" no-opts "-flto" } } } } */ > -/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle16\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts > "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > +/* { dg-final { scan-assembler-times > {ble\t[a-x0-9]+,zero,.L[0-9]+\s*\.L[0-9]+\:\s*vle16\.v\s+v[0-9]+,0\([a-x0-9]+\)} > 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" > no-opts "-funroll-loops" no-opts "-g" no-opts "-flto" } } } } */ > diff --git > a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-2.c > b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-2.c > index 1702885796a..9d40a13b06e 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-2.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-2.c > @@ -23,4 +23,4 @@ void f (void * restrict in, void * restrict out, int n) > } > > /* { dg-final { scan-assembler-times > {vsetvli\s+[a-x0-9]+,\s*zero,\s*e8,\s*mf8,\s*t[au],\s*m[au]} 1 { target { > no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" no-opts "-flto" > no-opts "-g" } } } } */ > -/* { dg-final { scan-assembler-times {vsetvli} 1 { target { no-opts "-O0" > no-opts "-funroll-loops" no-opts "-Os" no-opts "-Oz" no-opts "-flto" > no-opts "-g" } } } } */ > +/* { dg-final { scan-assembler-times {vsetvli} 1 { target { no-opts "-O0" > no-opts "-O1" no-opts "-funroll-loops" no-opts "-Os" no-opts "-Oz" no-opts > "-flto" no-opts "-g" } } } } */ > -- > 2.36.3 > >