https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127983
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
We have
(insn 12 11 13 4 (set (reg:V4SI 108)
(vec_duplicate:V4SI (reg/v:SI 104 [ s ]))) "pr127983.c":13:9 9532
{*vec_dupv4si}
(nil))
...
(insn 15 14 16 4 (parallel [
(set (reg/v:SI 104 [ s ])
(plus:SI (reg/v:SI 104 [ s ])
(const_int 1 [0x1])))
(clobber (reg:CC 17 flags))
]) "pr127983.c":14:8 288 {*addsi_1}
(nil))
(insn 16 15 17 4 (set (reg:V8SI 109)
(vec_duplicate:V8SI (reg/v:SI 104 [ s ]))) "pr127983.c":15:9 9543
{*vec_dupv8si}
(nil))
and cse1 turns that incorrectly into
(insn 16 11 12 4 (set (reg:V8SI 109)
(vec_duplicate:V8SI (reg/v:SI 104 [ s ]))) "pr127983.c":15:9 9543
{*vec_dupv8si}
(nil))
(insn 12 16 13 4 (set (reg:V4SI 108)
(subreg:V4SI (reg:V8SI 109) 0)) "pr127983.c":13:9 2557
{movv4si_internal}
(nil))
...
(insn 15 14 17 4 (parallel [
(set (reg/v:SI 104 [ s ])
(plus:SI (reg/v:SI 104 [ s ])
(const_int 1 [0x1])))
(clobber (reg:CC 17 flags))
]) "pr127983.c":14:8 288 {*addsi_1}
(expr_list:REG_UNUSED (reg:CC 17 flags)
(nil)))
(insn 17 15 18 4 (set (reg:V8SI 101 [ _2 ])
(reg:V8SI 109)) "pr127983.c":15:9 2556 {movv8si_internal}
(expr_list:REG_DEAD (reg:V8SI 109)
(nil)))