[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