https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116720

            Bug ID: 116720
           Summary: [13/14/15 Regression] RISC-V: Unrecognizable insn with
                    xtheadmemidx on rv32
           Product: gcc
           Version: 15.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: patrick at rivosinc dot com
  Target Milestone: ---

Testcase:
struct a {
  signed : 22;
};
volatile short b;
int *c;
void d(int e, struct a) {
  b;
  c = &e;
}


Command/backtrace:
> /scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/bin/riscv64-unknown-linux-gnu-gcc
>  -O3 -march=rv32ixtheadmempair     -mabi=ilp32    -mno-strict-align 
> preprocessed.c -c -S -o /dev/null
preprocessed.c: In function 'd':
preprocessed.c:9:1: error: unrecognizable insn:
    9 | }
      | ^
(insn 31 13 14 2 (parallel [
            (set (mem/c:SI (plus:SI (reg/f:SI 2 sp)
                        (const_int 8 [0x8])) [4 D.2262+0 S4 A8])
                (reg:SI 11 a1))
            (set (mem/c:SI (plus:SI (reg/f:SI 2 sp)
                        (const_int 12 [0xc])) [3 e+0 S4 A32])
                (reg:SI 10 a0 [ e ]))
        ]) "preprocessed.c":6:25 -1
     (expr_list:REG_DEAD (reg:SI 11 a1)
        (expr_list:REG_DEAD (reg:SI 10 a0 [ e ])
            (nil))))
during RTL pass: cprop_hardreg
preprocessed.c:9:1: internal compiler error: in extract_insn, at recog.cc:2882
0x2e376e5 internal_error(char const*, ...)
        ../../../gcc/gcc/diagnostic-global-context.cc:517
0xc52bb0 fancy_abort(char const*, int, char const*)
        ../../../gcc/gcc/diagnostic.cc:1657
0xae614b _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
        ../../../gcc/gcc/rtl-error.cc:108
0xae616d _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
        ../../../gcc/gcc/rtl-error.cc:116
0xae4a21 extract_insn(rtx_insn*)
        ../../../gcc/gcc/recog.cc:2882
0x12e809f extract_constrain_insn(rtx_insn*)
        ../../../gcc/gcc/recog.cc:2781
0x12ec09c copyprop_hardreg_forward_1
        ../../../gcc/gcc/regcprop.cc:836
0x12ed14f execute
        ../../../gcc/gcc/regcprop.cc:1423
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.


Godbolt: https://godbolt.org/z/sjoMj1c4E

Tested with:
riscv64-unknown-linux-gnu-gcc (gb56bd542942) 15.0.0 20240914 (experimental)

Found via fuzzer.

Reply via email to