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.

Reply via email to