[Bug target/96271] Failure to optimize memcmp of doubles to avoid going through memory
crazylht at gmail dot com
gcc-bugzilla@gcc.gnu.org
Wed Jul 22 07:23:24 GMT 2020
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?
More information about the Gcc-bugs
mailing list