https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96271
Hongtao.liu <crazylht at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |crazylht at gmail dot com --- Comment #3 from Hongtao.liu <crazylht at gmail dot com> --- in for testcase.c.267r.dse1 pass_dse1 fail to delete --- trying to replace DImode load in insn 7 from DFmode store in insn 2 -- could not extract bits of stored value trying to replace DImode load in insn 8 from DFmode store in insn 3 -- could not extract bits of stored value ... (insn 2 5 3 2 (set (mem/c:DF (plus:DI (reg/f:DI 19 frame) (const_int -8 [0xfffffffffffffff8])) [1 a+0 S8 A64]) (reg:DF 20 xmm0 [ a ])) "pr96271_double.c":4:1 135 {*movdf_internal} (expr_list:REG_DEAD (reg:DF 20 xmm0 [ a ]) ... (insn 7 4 8 2 (set (reg:DI 87 [ MEM <unsigned long> [(char * {ref-all})&a] ]) (mem/c:DI (plus:DI (reg/f:DI 19 frame) (const_int -8 [0xfffffffffffffff8])) [0 MEM <unsigned long> [(char * {ref-all})&a]+0 S8 A64])) "pr96271_double.c":5:37 74 {*movdi_internal} (nil)) ... --- Shouldn't DImode load behave the same with DFmode load?