https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69447
--- Comment #6 from Richard Henderson <rth at gcc dot gnu.org> --- ... except that's not the same set of live ranges computed by IRA: Insn 55(l0): point = 9 Insn 70(l0): point = 11 ... Insn 50(l0): point = 19 ... Insn 21(l0): point = 61 Insn 19(l0): point = 65 Insn 17(l0): point = 67 a3(r111 [0]): [10..67] a3(r111 [1]): [62..67] If we remat insn 21 into insn 50, we don't extend the lifetime of r111[0], but we do extend the lifetime of r111[1]. The problem appears to be that IRA takes subregs into account but LRA doesn't. Vlad, am I on the right track here?