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)

Reply via email to