https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121989
Bug ID: 121989 Summary: [14/15/16 Regression] arm: Unrecognizable insn ICE with __fp16 loop at -O3 Product: gcc Version: 16.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: acoplan at gcc dot gnu.org Target Milestone: --- The following fails: $ cat t.c __fp16 *a; __fp16 b; void f(__fp16 d) { unsigned e = 7; while (e) { b++; if (d < b) d = b; e--; } *a = d; } $ gcc/xgcc -B gcc -c t.c -S -o /dev/null -march=armv8.1-m.main+fp -mfloat-abi=hard -O3 t.c: In function ‘f’: t.c:12:1: error: unrecognizable insn: 12 | } | ^ (insn 13 12 14 2 (set (reg:HF 121 [ _24 ]) (if_then_else:HF (lt (reg:CCFPE 80 cc) (const_int 0 [0])) (reg:HF 99 [ _22 ]) (reg/v:HF 117 [ d ]))) -1 (nil)) during RTL pass: vregs t.c:12:1: internal compiler error: in extract_insn, at recog.cc:2884 0x207db5b internal_error(char const*, ...) /fast/trunk/src/gcc/gcc/diagnostic-global-context.cc:786 0x91e7c1 fancy_abort(char const*, int, char const*) /fast/trunk/src/gcc/gcc/diagnostics/context.cc:1786 0x7b4e94 _fatal_insn(char const*, rtx_def const*, char const*, int, char const*) /fast/trunk/src/gcc/gcc/rtl-error.cc:108 0x7b4eb6 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*) /fast/trunk/src/gcc/gcc/rtl-error.cc:116 0x7b3805 extract_insn(rtx_insn*) /fast/trunk/src/gcc/gcc/recog.cc:2884 0xc90403 instantiate_virtual_regs_in_insn /fast/trunk/src/gcc/gcc/function.cc:1609 0xc90403 instantiate_virtual_regs /fast/trunk/src/gcc/gcc/function.cc:1985 0xc90403 execute /fast/trunk/src/gcc/gcc/function.cc:2032 Please submit a full bug report, with preprocessed source (by using -freport-bug). Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions. $ gcc/xgcc -B gcc -v Reading specs from gcc/specs COLLECT_GCC=gcc/xgcc COLLECT_LTO_WRAPPER=gcc/lto-wrapper Target: arm-none-eabi Configured with: /fast/trunk/src/gcc/configure --prefix=/fast/builds/cc1s/arm --enable-languages=c,c++,fortran --target=arm-none-eabi Thread model: single Supported LTO compression algorithms: zlib zstd gcc version 16.0.0 20250918 (experimental) (GCC)