Hi Juzhe,

An assert added in this patch is firing on a testcase on rv64gcv:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112888

Thanks,
Patrick

On 12/6/23 06:26, Juzhe-Zhong wrote:
As PR112855 mentioned, the VSETVL PASS insert vsetvli in unexpected location.

Due to 2 reasons:
1. incorrect transparant computation LCM data. We need to check VL operand defs 
and uses.
2. incorrect fusion of unrelated edge which is the edge never reach the vsetvl 
expression.

        PR target/112855

gcc/ChangeLog:

        * config/riscv/riscv-vsetvl.cc 
(pre_vsetvl::compute_lcm_local_properties): Fix transparant LCM data.
        (pre_vsetvl::earliest_fuse_vsetvl_info): Disable earliest fusion for 
unrelated edge.

gcc/testsuite/ChangeLog:

        * gcc.target/riscv/rvv/autovec/pr112855.c: New test.

Reply via email to