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 ***