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

--- Comment #1 from Jeffrey A. Law <law at gcc dot gnu.org> ---
Probably the (subreg (mem ... )) created by combine that causes the problems:

Trying 7 -> 14:
    7: r134:V2QI=[r140:DI]
      REG_DEAD r140:DI
   14: r138:HF=r134:V2QI#0
      REG_DEAD r134:V2QI
Successfully matched this instruction:
(set (reg:HF 138 [ _16 ])
    (subreg:HF (mem/c:V2QI (reg/f:DI 140) [0 MEM <vector(2) char> [(char *
{ref-all})&cc]+0 S2 A8]) 0))
allowing combination of insns 7 and 14
original costs 4 + 12 = 16
replacement cost 12
deferring deletion of insn with uid = 7.
modifying insn i3    14: r138:HF=[r140:DI]#0
      REG_DEAD r140:DI
deferring rescan insn with uid = 14.

At the very least generating (subreg (mem)) is highly suspicious.

Reply via email to