https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115013
Bug ID: 115013 Summary: LRA: PR114810 fix result in ICE in the RISC-V Vector Product: gcc Version: 15.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: pan2.li at intel dot com Target Milestone: --- The patch: [PR114810][LRA]: Recognize alternatives with lack of available registers for insn and demote them. Results in some ICE in the rvv.exp of RISC-V backend. ========= Summary of gcc testsuite ========= | # of unexpected case / # of unique unexpected case | gcc | g++ | gfortran | rv64gcv/ lp64d/ medlow | 1061 / 69 | 0 / 0 | - | make: *** [Makefile:1096: report-gcc-newlib] Error 1 Just pick one imm_loop_invariant-10.c as below. .../gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-10.c:20:1: error: unrecognizable insn: (insn 265 0 0 (parallel [ (set (reg:RVVMF8QI 309 [239]) (unspec:RVVMF8QI [ (reg:SI 0 zero) ] UNSPEC_VUNDEF)) (clobber (scratch:SI)) ]) -1 (nil)) during RTL pass: reload …. gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-10.c:20:1: internal compiler error: in extract_insn, at recog.cc:2812 0xa9d309 _fatal_insn(char const*, rtx_def const*, char const*, int, char const*) ........../.././gcc/gcc/rtl-error.cc:108 0xa9d32b _fatal_insn_not_found(rtx_def const*, char const*, int, char const*) ........../.././gcc/gcc/rtl-error.cc:116 0xa9bc07 extract_insn(rtx_insn*) ........../.././gcc/gcc/recog.cc:2812 0x10e5ad2 ira_remove_insn_scratches(rtx_insn*, bool, _IO_FILE*, rtx_def* (*)(rtx_def*)) ........../.././gcc/gcc/ira.cc:5381 0x112868f remove_insn_scratches ........../.././gcc/gcc/lra.cc:2154 0x112868f lra_emit_move(rtx_def*, rtx_def*) ........../.././gcc/gcc/lra.cc:513 0x1136883 match_reload ........../.././gcc/gcc/lra-constraints.cc:1184 0x1142ae4 curr_insn_transform ........../.././gcc/gcc/lra-constraints.cc:4778 0x11443cb lra_constraints(bool) ........../.././gcc/gcc/lra-constraints.cc:5481 0x112b192 lra(_IO_FILE*, int) ........../.././gcc/gcc/lra.cc:2442 0x10e0e7f do_reload ........../.././gcc/gcc/ira.cc:5973 0x10e0e7f execute ........../.././gcc/gcc/ira.cc:6161 reproduced by below command: riscv64-unknown-elf-gcc -c -S gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-10.c -march=rv32gcv -mabi=ilp32 -o -