https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124592
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed| |2026-03-21
Ever confirmed|0 |1
Status|UNCONFIRMED |NEW
Assignee|pinskia at gcc dot gnu.org |unassigned at gcc dot
gnu.org
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
It is LRA trying to reload the address inside this instruction:
```
(insn 37 36 38 3 (set (reg:SI 125 [ *_9 ])
(mem:SI (plus:DI (mult:DI (sign_extend:DI (reg:SI 92 [ h_lsm.10 ]))
(const_int 4 [0x4]))
(reg/f:DI 65 ap)) [1 *_9+0 S4 A32])) "/app/example.cpp":9:9 52
{*movsi_aarch64}
(expr_list:REG_EQUIV (mem:SI (plus:DI (mult:DI (sign_extend:DI (reg:SI 92
[ h_lsm.10 ]))
(const_int 4 [0x4]))
(reg/f:DI 65 ap)) [1 *_9+0 S4 A32])
(nil)))
```
LRA creates:
```
(insn 78 76 79 3 (set (reg:DI 140)
(mult:DI (sign_extend:DI (reg:SI 113 [ h_lsm.10 ]))
(const_int 4 [0x4]))) "/app/example.cpp":9:9 -1
(nil))
```
But that is not an instruction.
GCC 10 had produced:
```
(insn 37 36 38 3 (set (reg:SI 125 [ *_9 ])
(mem:SI (plus:DI (sign_extract:DI (mult:DI (subreg:DI (reg:SI 92 [
h_lsm.10 ]) 0)
(const_int 4 [0x4]))
(const_int 34 [0x22])
(const_int 0 [0]))
(reg/f:DI 65 ap)) [1 *_9+0 S4 A32])) "/app/example.cpp":9:9 52
{*movsi_aarch64}
(expr_list:REG_EQUIV (mem:SI (plus:DI (sign_extract:DI (mult:DI (subreg:DI
(reg:SI 92 [ h_lsm.10 ]) 0)
(const_int 4 [0x4]))
(const_int 34 [0x22])
(const_int 0 [0]))
(reg/f:DI 65 ap)) [1 *_9+0 S4 A32])
(nil)))
```
Which worked.