https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111486

--- Comment #1 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The trunk branch has been updated by Lehua Ding <lh...@gcc.gnu.org>:

https://gcc.gnu.org/g:38048fc501b3d53fc38c701ae4625024cd93bd1d

commit r14-4193-g38048fc501b3d53fc38c701ae4625024cd93bd1d
Author: Juzhe-Zhong <juzhe.zh...@rivai.ai>
Date:   Thu Sep 21 14:54:33 2023 +0800

    RISC-V: Fix SUBREG move of VLS mode[PR111486]

    This patch fixes this bug:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111486

    Before this patch, we can only handle (subreg:DI (reg:V8QI))

    The PR ICE:

    during RTL pass: reload
    testcase.c: In function 'foo':
    testcase.c:8:1: internal compiler error: in require, at machmode.h:313
        8 | }
          | ^
    0xa40cd2 opt_mode<machine_mode>::require() const
            /repo/gcc-trunk/gcc/machmode.h:313
    0xa47091 opt_mode<machine_mode>::require() const
            /repo/gcc-trunk/gcc/config/riscv/riscv.cc:2546
    0xa47091 riscv_legitimize_move(machine_mode, rtx_def*, rtx_def*)
            /repo/gcc-trunk/gcc/config/riscv/riscv.cc:2543
    0x1f1df10 gen_movdi(rtx_def*, rtx_def*)
            /repo/gcc-trunk/gcc/config/riscv/riscv.md:2024
    0x10f1423 rtx_insn* insn_gen_fn::operator()<rtx_def*, rtx_def*>(rtx_def*,
rtx_def*) const
            /repo/gcc-trunk/gcc/recog.h:411
    0x10f1423 emit_move_insn_1(rtx_def*, rtx_def*)
            /repo/gcc-trunk/gcc/expr.cc:4164
    0x10f183d emit_move_insn(rtx_def*, rtx_def*)
            /repo/gcc-trunk/gcc/expr.cc:4334
    0x13070ec lra_emit_move(rtx_def*, rtx_def*)
            /repo/gcc-trunk/gcc/lra.cc:509
    0x132295b curr_insn_transform
            /repo/gcc-trunk/gcc/lra-constraints.cc:4748
    0x1324335 lra_constraints(bool)
            /repo/gcc-trunk/gcc/lra-constraints.cc:5488
    0x130a3d4 lra(_IO_FILE*)
            /repo/gcc-trunk/gcc/lra.cc:2419
    0x12bb629 do_reload
            /repo/gcc-trunk/gcc/ira.cc:5970
    0x12bb629 execute
            /repo/gcc-trunk/gcc/ira.cc:6156

    Because of (subreg:DI (reg:V2QI))

            PR target/111486

    gcc/ChangeLog:

            * config/riscv/riscv.cc (riscv_legitimize_move): Fix bug.

    gcc/testsuite/ChangeLog:

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

Reply via email to