https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117116
--- Comment #4 from Hongtao Liu <liuhongt at gcc dot gnu.org> ---
(In reply to Hongtao Liu from comment #3)
> A simple testcase
>
> typedef long long v4di __attribute__((vector_size(32)));
>
> v4di
> foo (long long a)
> {
> return __extension__(v4di){(long long)foo, 1, 1, 1};
> }
>
> reproduced with -O2 -mavx2, failed at least since gcc4.8.1
19843;; sse4_1_pinsrd must come before sse2_loadld since it is preferred.
19844(define_insn "<sse2p4_1>_pinsr<ssemodesuffix>"
19845 [(set (match_operand:PINSR_MODE 0 "register_operand" "=x,x,x,x,v,v,&x")
19846 (vec_merge:PINSR_MODE
19847 (vec_duplicate:PINSR_MODE
19848 (match_operand:<ssescalarmode> 2 "nonimmediate_operand"
"jr,jm,r,m,r,m,x"))
19849 (match_operand:PINSR_MODE 1 "register_operand" "0,0,x,x,v,v,x")
19850 (match_operand:SI 3 "const_int_operand")))]
19851 "TARGET_SSE2
19852 && ((unsigned) exact_log2 (INTVAL (operands[3]))
19853 < GET_MODE_NUNITS (<MODE>mode))"
Doesn't support V2DI, we're using.
21622(define_insn "vec_concatv2di"
21623 [(set (match_operand:V2DI 0 "register_operand"
21624 "=Yr,*x,x ,v ,x,v ,x,x,v")
21625 (vec_concat:V2DI
21626 (match_operand:DI 1 "register_operand"
21627 " 0, 0,x ,Yv,0,Yv,0,0,v")
21628 (match_operand:DI 2 "nonimmediate_operand"
21629 " jrjm,jrjm,rm,rm,x,Yv,x,m,m")))]
21630 "TARGET_SSE"