https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119966
Bug ID: 119966 Summary: pru: Invalid register in RTL expression starting with r16-160-ge6f89d78c1a752 Product: gcc Version: 16.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: dimitar at gcc dot gnu.org Target Milestone: --- Cross building libbacktrace for pru-unknown-elf results in ICE: elf.c:5006:1: internal compiler error: in pru_asm_regname, at config/pru/pru.cc:1704 Indeed, SI mode is selected for register r0.b1, which is invalid. Only r0 is valid for SI mode: (gdb) pr insn (insn 3961 7067 3962 149 (set (reg:SI 56 r14.b0) (and:SI (reg:SI 1 r0.b1 [ _201 ]) (const_int 3 [0x3]))) "../../pru-gcc-build/pru/libstdc++-v3/src/libbacktrace/elf.c":4651:8 494 {and_implsisisi__noz_z0_z1_z2} (expr_list:REG_DEAD (reg:QI 4 r1.b0) (expr_list:REG_DEAD (reg:QI 3 r0.b3) (expr_list:REG_DEAD (reg:QI 2 r0.b2) (expr_list:REG_DEAD (reg:QI 1 r0.b1) (nil)))))) This started with r16-160-ge6f89d78c1a752