https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106524
Bug ID: 106524 Summary: [12/13 Regression] ICE in extract_insn, at recog.cc:2791 (error: unrecognizable insn) Product: gcc Version: 13.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- Target: aarch64-linux-gnu gcc 13.0.0 20220731 snapshot (g:525a1a73a5a563c829a5f76858fe122c9b39f254) ICEs when compiling the following testcase, reduced from gcc/testsuite/gcc.target/aarch64/sve/vcond_4_zero.c, w/ -march=armv8-a+sve -O2 -fno-move-loop-invariants: void test__zero (int *restrict dest, int *restrict src, float *a, int count) { int i; for (i = 0; i < count; ++i) dest[i] = !__builtin_isunordered (a[i], 0) ? src[i] : 0; } % aarch64-linux-gnu-gcc-13.0.0 -march=armv8-a+sve -O2 -fno-move-loop-invariants -c ezv9mlin.c ezv9mlin.c: In function 'test__zero': ezv9mlin.c:8:1: error: unrecognizable insn: 8 | } | ^ (insn 58 23 59 4 (set (reg:VNx4BI 122) (unspec:VNx4BI [ (reg:VNx4BI 97 [ loop_mask_46 ]) (const_int 0 [0]) (reg:VNx4SF 98 [ vect__4.10 ]) (const_vector:VNx4SF repeat [ (const_double:SF 0.0 [0x0.0p+0]) ]) ] UNSPEC_COND_FCMUO)) -1 (expr_list:REG_DEAD (reg:VNx4SF 98 [ vect__4.10 ]) (nil))) during RTL pass: sched1 ezv9mlin.c:8:1: internal compiler error: in extract_insn, at recog.cc:2791 0x75b3e6 _fatal_insn(char const*, rtx_def const*, char const*, int, char const*) /var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20220731/work/gcc-13-20220731/gcc/rtl-error.cc:108 0x75b404 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*) /var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20220731/work/gcc-13-20220731/gcc/rtl-error.cc:116 0x759d4d extract_insn(rtx_insn*) /var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20220731/work/gcc-13-20220731/gcc/recog.cc:2791 0xd2ddcf scan_one_insn /var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20220731/work/gcc-13-20220731/gcc/ira-costs.cc:1464 0xd2ddcf process_bb_for_costs /var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20220731/work/gcc-13-20220731/gcc/ira-costs.cc:1632 0xd2f4b7 find_costs_and_classes /var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20220731/work/gcc-13-20220731/gcc/ira-costs.cc:1739 0xd2fafa ira_set_pseudo_classes(bool, _IO_FILE*) /var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20220731/work/gcc-13-20220731/gcc/ira-costs.cc:2293 0x1b66137 alloc_global_sched_pressure_data /var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20220731/work/gcc-13-20220731/gcc/haifa-sched.cc:7201 0x1b66137 sched_init() /var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20220731/work/gcc-13-20220731/gcc/haifa-sched.cc:7356 0x1b678ca haifa_sched_init() /var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20220731/work/gcc-13-20220731/gcc/haifa-sched.cc:7368 0xec7bba schedule_insns() /var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20220731/work/gcc-13-20220731/gcc/sched-rgn.cc:3510 0xec832c schedule_insns() /var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20220731/work/gcc-13-20220731/gcc/sched-rgn.cc:3504 0xec832c rest_of_handle_sched /var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20220731/work/gcc-13-20220731/gcc/sched-rgn.cc:3722 0xec832c execute /var/tmp/portage/cross-aarch64-linux-gnu/gcc-13.0.0_p20220731/work/gcc-13-20220731/gcc/sched-rgn.cc:3832