https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115456
Bug ID: 115456 Summary: ICE: unrecognizable insn with march=rv64gcv_zvfhmin Product: gcc Version: 14.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: sh.chiang04 at gmail dot com Target Milestone: --- Target: riscv64*-*-* The fail test is extract from gcc.target/riscv/rvv/autovec/vls-vlmax/compress_run-2.c compile option: -march=rv64gcv_zvfhmin -mabi=lp64d -ftree-vectorize -O3 -mrvv-max-lmul=m1 -mrvv-vector-bits=scalable -fno-vect-cost-model -ffast-math test case: #include <assert.h> #include <stdint-gcc.h> typedef _Float16 vnx4f __attribute__ ((vector_size (8))); vnx4f __attribute__ ((noinline, noclone)) test_5 (vnx4f x, vnx4f y) { return __builtin_shufflevector (x, y, 1, 3, 6, 7); } int main (void) { vnx4f test_5_x = {0, 1, 3, 4}; vnx4f test_5_y = {4, 5, 6, 7}; vnx4f test_5_except = {1, 4, 6, 7}; vnx4f test_5_real; test_5_real = test_5 (test_5_x, test_5_y); for (int i = 0; i < 4; i++) assert (test_5_real[i] == test_5_except[i]); return 0; } error message: compress_run-2.c:27:1: error: unrecognizable insn: 27 | } | ^ (insn 19 18 20 2 (set (reg:HF 150 [ _13 ]) (unspec:HF [ (vec_select:HF (reg:V4HF 134 [ _1 ]) (parallel [ (const_int 0 [0]) ])) (reg:SI 67 vtype) ] UNSPEC_VPREDICATE)) "compress_run-2.c":24:5 -1 (nil)) during RTL pass: vregs compress_run-2.c:27:1: internal compiler error: in extract_insn, at recog.cc:2812 0x1a627ef _fatal_insn(char const*, rtx_def const*, char const*, int, char const*) ../../../gcc/gcc/rtl-error.cc:108 0x1a62834 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*) ../../../gcc/gcc/rtl-error.cc:116 0x1a0f356 extract_insn(rtx_insn*) ../../../gcc/gcc/recog.cc:2812 0x159ee61 instantiate_virtual_regs_in_insn ../../../gcc/gcc/function.cc:1612 0x15a04aa instantiate_virtual_regs ../../../gcc/gcc/function.cc:1995 0x15a058e execute ../../../gcc/gcc/function.cc:2042