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

--- Comment #1 from Uroš Bizjak <ubizjak at gmail dot com> ---
Happens in reload.

We have:

(insn 10 9 11 2 (set (subreg:V2DI (reg:DI 110) 0)
        (plus:V2DI (subreg:V2DI (reg:DI 109) 0)
            (subreg:V2DI (reg:DI 123) 0))) "pr78585.c":12 2956 {*addv2di3}
     (expr_list:REG_DEAD (reg:DI 123)
        (expr_list:REG_DEAD (reg:DI 109)
            (nil))))

After reload:

(insn 62 32 13 2 (set (mem/c:V2DI (plus:SI (reg/f:SI 6 bp)
                (const_int -68 [0xffffffffffffffbc])) [3 %sfp+-32 S16 A128])
        (reg:V2DI 21 xmm0 [142])) "pr78585.c":12 1217 {movv2di_internal}
     (nil))

...

(insn 10 9 11 2 (set (reg:V2DI 23 xmm2 [110])
        (plus:V2DI (reg:V2DI 23 xmm2 [109])
            (mem/c:V2DI (plus:SI (reg/f:SI 6 bp)
                    (const_int -68 [0xffffffffffffffbc])) [3 %sfp+-32 S16
A128]))) "pr78585.c":12 2956 {*addv2di3}
     (nil))

Alignment is correct for V2DImode, but offset is not.

Reply via email to