https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64688
--- Comment #3 from Vladimir Makarov <vmakarov at gcc dot gnu.org> --- (In reply to Jakub Jelinek from comment #2) > This is while reloading > (define_insn "vec_set<mode>_0" > [(set (match_operand:VI4F_128 0 "nonimmediate_operand" > "=Yr,*v,v,v ,x,x,v,Yr ,*x ,x ,m ,m ,m") > (vec_merge:VI4F_128 > (vec_duplicate:VI4F_128 > (match_operand:<ssescalarmode> 2 "general_operand" > " Yr,*v,m,*r,m,x,v,*rm,*rm,*rm,!x,!*re,!*fF")) > (match_operand:VI4F_128 1 "vector_move_operand" > " C , C,C,C ,C,0,v,0 ,0 ,x ,0 ,0 ,0") > (const_int 1)))] > instruction I think. The problem is related to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64477 The solution proposed there solves this problem too. Changing '*r' to 'r" resulting in constraint " Yr,*v,m,r,m,x,v,*rm,*rm,*rm,!x,!*re,!*fF" will solve the PR. So the change will solve 2 PRs (this one and 64477). I believe it is up to x86 maintainers to do this change.