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