https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100342

--- Comment #7 from Uroš Bizjak <ubizjak at gmail dot com> ---
I have traced a bit where (insn 2275) and (insn 2287) come from.

In _.ira, we have:

  613: r125:QI=r2067:DI#0
  ...
  659: zero_extract(r2080:DI,0x8,0x8)=r125:QI#0

And in _.reload, a DImode reload is inserted before zero_extract RTX:

  613: si:QI=r14:QI
  ...
 2275: dx:DI=si:DI
  659: zero_extract(ax:DI,0x8,0x8)=dx:DI

However, %rsi is only initialized with QImode value in (insn 613).

This word-mode reload for zero_extract RTX interferes with register propagation
in subsequent passes, as shown in the comment #5.

Reply via email to