https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69648
--- Comment #2 from Zdenek Sojka <zsojka at seznam dot cz> --- If I understand the .reload dump correctly, r87 is not live in insn 289, but it should be: ... 289: r416:SI=r87:SI+const(unspec[`*.LC9'] 1) REG_EQUAL `*.LC9' Creating newreg=417 from oldreg=87, assigning class GENERAL_REGS to address r417 Change to class INDEX_REGS for r417 0 Non pseudo reload: reject++ alt=0,overall=1,losers=0,rld_nregs=0 Choosing alt 0 in insn 289: (0) =r (1) Ts {*leasi} 289: r416:SI=r417:SI+const(unspec[`*.LC9'] 1) ... Insn 289: point = 104 ... r87 is added to live at bb2 start ... r87: [107..246] But maybe I misunderstand the dump - why is r87's live range 107..246, when it is live at bb start?