Yeah, try pr111391.c with rv64gc_zve32x (NO v, my mistake in last mail :P), maybe add a testcase pr111391-zve32x.c that just include pr111391.c and set dg option to rv64gc_zve32x
On Thu, Sep 14, 2023 at 5:24 PM juzhe.zh...@rivai.ai <juzhe.zh...@rivai.ai> wrote: > > You mean try pr111391.c > that I added with rv64gcv_zve32x ? > > > > juzhe.zh...@rivai.ai > > From: Kito Cheng > Date: 2023-09-14 17:20 > To: juzhe.zh...@rivai.ai > CC: gcc-patches; Kito.cheng; jeffreyalaw; Robin Dapp > Subject: Re: Re: [PATCH V3] RISC-V: Expand VLS mode to scalar mode > move[PR111391] > Could you check if it work correctly for rv64gcv_zve32x? add testcase > no matter if it works or not :) > > On Thu, Sep 14, 2023 at 5:19 PM juzhe.zh...@rivai.ai > <juzhe.zh...@rivai.ai> wrote: > > > > Is it Ok for trunk ? Or you want me send a separate patch to remove "@" in > > vec_extract optab ? > > > > > > > > juzhe.zh...@rivai.ai > > > > From: Kito Cheng > > Date: 2023-09-14 16:11 > > To: Juzhe-Zhong > > CC: gcc-patches; kito.cheng; jeffreyalaw; rdapp.gcc > > Subject: Re: [PATCH V3] RISC-V: Expand VLS mode to scalar mode > > move[PR111391] > > On Thu, Sep 14, 2023 at 4:04 PM Juzhe-Zhong <juzhe.zh...@rivai.ai> wrote: > > > > > > This patch fixes https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111391 > > > > > > I notice that previous patch (V2 patch) cause additional execution fail > > > of pr69719.c > > > This FAIL is because of the latent BUG of VSETVL PASS. > > > > > > So this patch includes VSETVL PASS fix even though it's not related to > > > the PR111391. > > > > > > I have confirm the whole regression no additional FAILs are introduced. > > > > > > PR target/111391 > > > > > > gcc/ChangeLog: > > > > > > * config/riscv/autovec.md (@vec_extract<mode><vel>): Remove @. > > > (vec_extract<mode><vel>): Ditto. > > > * config/riscv/riscv-vsetvl.cc (emit_vsetvl_insn): Fix bug. > > > (pass_vsetvl::local_eliminate_vsetvl_insn): Ditto. > > > * config/riscv/riscv.cc (riscv_legitimize_move): Expand move. > > > > > > gcc/testsuite/ChangeLog: > > > > > > * gcc.target/riscv/rvv/autovec/partial/slp-9.c: Adapt test. > > > * gcc.target/riscv/rvv/autovec/pr111391.c: New test. > > > > > > --- > > > gcc/config/riscv/autovec.md | 2 +- > > > gcc/config/riscv/riscv-vsetvl.cc | 4 ++- > > > gcc/config/riscv/riscv.cc | 32 +++++++++++++++++++ > > > .../riscv/rvv/autovec/partial/slp-9.c | 1 - > > > .../gcc.target/riscv/rvv/autovec/pr111391.c | 28 ++++++++++++++++ > > > 5 files changed, 64 insertions(+), 3 deletions(-) > > > create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111391.c > > > > > > diff --git a/gcc/config/riscv/autovec.md b/gcc/config/riscv/autovec.md > > > index e74a1695709..7121bab1716 100644 > > > --- a/gcc/config/riscv/autovec.md > > > +++ b/gcc/config/riscv/autovec.md > > > @@ -1442,7 +1442,7 @@ > > > ;; > > > ------------------------------------------------------------------------- > > > ;; ---- [INT,FP] Extract a vector element. > > > ;; > > > ------------------------------------------------------------------------- > > > -(define_expand "@vec_extract<mode><vel>" > > > +(define_expand "vec_extract<mode><vel>" > > > > Why remove this? I saw this change was introduced in v3? > > > > > > > [(set (match_operand:<VEL> 0 "register_operand") > > > (vec_select:<VEL> > > > (match_operand:V_VLS 1 "register_operand") > > >