https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103252
--- Comment #11 from Hongtao.liu <crazylht at gmail dot com> ---
> Why cprop_hardreg can't handle this?
cprop_hardreg only prop hard register, not memory.
(insn 86 85 227 15 (set (reg:SI 68 k0 [132])
(mem/u/c:SI (plus:SI (reg:SI 3 bx [82])
(const:SI (unspec:SI [
(symbol_ref:SI ("__libc_tsd_CTYPE_B") [flags 0x60]
<var_decl 0x7f6668cf2b40 __libc_tsd_CTYPE_B>)
] UNSPEC_GOTNTPOFF))) [7 S4 A8])) "est.c":81:67 75
{*movsi_internal}
(expr_list:REG_EQUIV (mem/u/c:SI (plus:SI (reg:SI 3 bx [82])
(const:SI (unspec:SI [
(symbol_ref:SI ("__libc_tsd_CTYPE_B") [flags 0x60]
<var_decl 0x7f6668cf2b40 __libc_tsd_CTYPE_B>)
] UNSPEC_GOTNTPOFF))) [7 S4 A8])
(nil)))
(insn 227 86 202 15 (set (reg:SI 2 cx [132])
(reg:SI 68 k0 [132])) test.c":81:67 75 {*movsi_internal}
(expr_list:REG_DEAD (reg:SI 68 k0 [132])
(nil)))
(insn 202 227 88 15 (set (reg/f:SI 68 k0 [orig:131 __libc_tsd_CTYPE_B ] [131])
(mem/f/c:SI (reg:SI 2 cx [132]) [4 __libc_tsd_CTYPE_B+0 S4 A32 AS2]))
"test.c":81:67 75 {*movsi_internal}
(expr_list:REG_DEAD (reg:SI 2 cx [132])
(nil)))
(note 88 202 89 15 NOTE_INSN_DELETED)
(note 89 88 228 15 NOTE_INSN_DELETED)
(insn 228 89 203 15 (set (reg/f:SI 2 cx [orig:131 __libc_tsd_CTYPE_B ] [131])
(reg/f:SI 68 k0 [orig:131 __libc_tsd_CTYPE_B ] [131])) "test.c":81:43
75 {*movsi_internal}
(expr_list:REG_DEAD (reg/f:SI 68 k0 [orig:131 __libc_tsd_CTYPE_B ] [131])
(nil)))