https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108463

--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
The first two differences are between insns 1204 vs. 1116 and 1204 vs. 1095:
(insn 1095 1094 1097 2 (set (mem/c:V4SI (plus:DI (reg/f:DI 7 sp)
                (const_int -104 [0xffffffffffffff98])) [1  S16 A128])
        (reg:V4SI 22 xmm2 [227])) "pr106746.c":27:5 1809 {movv4si_internal}
     (expr_list:REG_DEAD (reg:V4SI 22 xmm2 [227])
        (nil)))
(insn 1116 1115 1118 2 (set (mem/c:V4SI (plus:DI (reg/f:DI 7 sp)
                (const_int -88 [0xffffffffffffffa8])) [1  S16 A128])
        (reg:V4SI 22 xmm2 [247])) "pr106746.c":27:5 1809 {movv4si_internal}
     (expr_list:REG_DEAD (reg:V4SI 22 xmm2 [247])
        (nil)))
(insn 1204 1118 1189 2 (set (reg:SI 0 ax [250])
        (mem:SI (plus:DI (reg/f:DI 7 sp)
                (const_int 120 [0x78])) [1  S4 A128])) "pr106746.c":27:5 83
{*movsi_internal}
     (expr_list:REG_EQUIV (mem:SI (plus:DI (reg/f:DI 19 frame)
                (const_int -208 [0xffffffffffffff30])) [1  S4 A128])
        (nil)))
4 bytes at sp + 120 can't alias with 16 bytes at sp - 104 or 16 bytes at sp -
88
when sp isn't modified in between and all 3 are in the same bb.
So 1 returned from true_dependence looks incorrect (the -g case).

Reply via email to