https://gcc.gnu.org/bugzilla/show_bug.cgi?id=128439
Bug ID: 128439
Summary: risc-v: ICE in in extract_constrain_insn
Product: gcc
Version: 17.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: rtl-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: kirill.k.smirnov at gmail dot com
Target Milestone: ---
Created attachment 66084
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=66084&action=edit
testcase
I am building llama.cpp for RISC-V spacemit k3 core.
gcc revision is 901560aa377051f162bbf50a0fe49a5e17b4b232. For some reason it
has not been mentioned in file bug.ii generated by -freport-bug.
$ riscv64-unknown-linux-gnu-g++ bug.ii -c -O3 -march=rva23u64
/home/lich/pkg/repos/llama.cpp/ggml/src/ggml-cpu/repack.cpp:2273:1: error: insn
does not satisfy its constraints:
2273 | }
| ^
(insn 863 859 1122 15 (set (reg:V4SF 100 v4 [orig:380 vect__549.19337 ] [380])
(if_then_else:V4SF (unspec:V4BI [
(const_vector:V4BI [
(const_int 1 [0x1]) repeated x4
])
(const_int 4 [0x4])
(const_int 2 [0x2]) repeated x3
(reg:SI 66 vl)
(reg:SI 67 vtype)
] UNSPEC_VPREDICATE)
(float_extend:V4SF (reg:V4HF 100 v4 [orig:1094 vect__547.19335_2306
] [1094]))
(unspec:V4SF [
(reg:DI 0 zero)
] UNSPEC_VUNDEF)))
"/home/lich/pkg/repos/llama.cpp/ggml/src/ggml-cpu/simd-mappings.h":102:16
discrim 65792 20363 {pred_extendv4sf}
(nil))
during RTL pass: reload
/home/lich/pkg/repos/llama.cpp/ggml/src/ggml-cpu/repack.cpp:2273:1: internal
compiler error: in extract_constrain_insn, at recog.cc:2797
0x7f02e9ec9d64 __libc_start_main
???:0
/home/lich/x-tools/riscv64-unknown-linux-gnu/libexec/gcc/riscv64-unknown-linux-gnu/17.0.0/cc1plus
-fpreprocessed /home/lich/bug.ii -quiet -dumpbase bug.ii -dumpbase-ext .ii
-march=rva23u64 -mabi=lp64d -misa-spec=20191213 -mtls-dialect=trad
-march=rv64imafdcbv_zic64b_zicbom_zicbop_zicboz_ziccamoa_ziccif_zicclsm_ziccrse_zicntr_zicond_zicsr_zihintntl_zihintpause_zihpm_zimop_zmmul_za64rs_zaamo_zalrsc_zawrs_zfa_zfhmin_zca_zcb_zcd_zcmop_zba_zbb_zbs_zkt_zvbb_zve32f_zve32x_zve64d_zve64f_zve64x_zvfhmin_zvkb_zvkt_zvl128b_zvl32b_zvl64b_supm
-O3 -o /tmp/ccBVis63.s
It looks like a duplicate of Bug 127739, but the triggering conditions and
error message are different. This bug does not get triggered by '-O2
-march=rv64gcv -ftree-vectorize', it requires -O3 and a new rva23u64 arch.