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)