https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120856
Bug ID: 120856
Summary: [avr] during RTL pass: split2: internal compiler
error: Segmentation fault with -mno-lra
Product: gcc
Version: 16.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: gjl at gcc dot gnu.org
Target Milestone: ---
unsigned long long _Fract
func (long f)
{
return __builtin_avr_ullrbits (f < 0 ? 0 : f);
}
This test case ICEs with -Os -mno-lra when split2 tries to split the following
insn:
(insn 10 40 29 4 (set (reg:DI 24 r24 [orig:49 _2 ] [49])
(zero_extend:DI (reg:SI 24 r24 [orig:48 _1 ] [48])))
"<stdin>":4:46 827 {zero_extendsidi2}
because it splits to R24:SI = R22:SI and R28:SI = 0, but the latter is denied
since hard_regno_mode_ok denies R28:SI with -mno-lra but allowed R22:DI.
This ICE accurs when building libgcc, so might be annoying when comparing -mlra
against -mno-lra.