https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91522
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
Uh, all other DF_REG_REG_CHAIN uses need to be updated as well I guess, how
we convert defs and uses seems to be a slight mess :/ I'm going to try
to rewrite this part to
for insn in insns
for def in insn
if def in defs_conv
replace def in insn with subreg of new pseudo from new defs-map
emit copy from new def to original scalar def
else
replace def with subreg
for use in insn
if use in defs_conv & ~defs
replace use in insn with subreg of new pseudo from new defs-map
emit copy from old scalar def to new def
else
replace use with subreg [of new pseudo from new defs-map]
that should also support chains where not all defs of a pseudo are part
of the chain. Since we have ud and du chains we can use those more.