This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug rtl-optimization/68011] [6 Regression] wrong code at -O1 and above on x86_64-linux-gnu in 64-bit mode


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

UroÅ Bizjak <ubizjak at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |DUPLICATE

--- Comment #4 from UroÅ Bizjak <ubizjak at gmail dot com> ---
(In reply to Richard Biener from comment #3)
> Possibly a dup of that reload/LRA issue

Exactly.

We start with:

(insn 18 17 19 2 (parallel [
            (set (subreg:DI (reg/v:TI 92 [ e ]) 0)
                (ior:DI (reg:DI 100)
                    (reg:DI 98 [ _3 ])))
            (clobber (reg:CC 17 flags))
        ]) pr68011.c:18 398 {*iordi_1}
     (expr_list:REG_DEAD (reg:DI 100)
        (expr_list:REG_DEAD (reg:DI 98 [ _3 ])
            (expr_list:REG_UNUSED (reg:CC 17 flags)
                (nil)))))
(insn 19 18 21 2 (set (reg:V8HI 103)
        (vec_merge:V8HI (vec_duplicate:V8HI (reg:HI 91 [ e$12 ]))
            (subreg:V8HI (reg/v:TI 92 [ e ]) 0)
            (const_int 64 [0x40]))) pr68011.c:18 3597 {sse2_pinsrw}

and reload generates (insn 41) that clears high word:

(insn 18 39 40 2 (parallel [
            (set (reg:DI 0 ax [100])
                (ior:DI (reg:DI 0 ax [100])
                    (reg:DI 2 cx [orig:98 _3 ] [98])))
            (clobber (reg:CC 17 flags))
        ]) pr68011.c:18 398 {*iordi_1}
     (nil))

...

(insn 41 40 19 2 (set (reg:DI 21 xmm0 [orig:92 e ] [92])
        (mem/c:DI (plus:DI (reg/f:DI 7 sp)
                (const_int 8 [0x8])) [0 %sfp+-8 S8 A64])) pr68011.c:18 85
{*movdi_internal}
     (nil))
(insn 19 41 21 2 (set (reg:V8HI 21 xmm0 [103])
        (vec_merge:V8HI (vec_duplicate:V8HI (reg:HI 1 dx [orig:91 e$12 ] [91]))
            (reg:V8HI 21 xmm0 [orig:92 e ] [92])
            (const_int 64 [0x40]))) pr68011.c:18 3597 {sse2_pinsrw}

*** This bug has been marked as a duplicate of bug 67124 ***

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]