https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107057
--- Comment #9 from Uroš Bizjak <ubizjak at gmail dot com> --- (In reply to Hongtao.liu from comment #7) > And it looks like the pattern is wrongly defined since from [1]. > > ----------cut begin------------ > Matching constraints are used in these circumstances. More precisely, the > two operands that match must include one input-only operand and one > output-only operand. Moreover, the digit must be a smaller number than the > number of the operand that uses it in the constraint. > ----------------cut end---------- > > (define_insn "vec_concatv2df" > [(set (match_operand:V2DF 0 "register_operand" "=x,x,v,x,v,x,x, v,x,x") > (vec_concat:V2DF > (match_operand:DF 1 "nonimmediate_operand" " 0,x,v,m,m,0,x,vm,0,0") > (match_operand:DF 2 "nonimm_or_0_operand" " x,x,v,1,1,m,m, C,x,m")))] > > > For alternatvie 1, the two operands are both input only. > > [1] > https://gcc.gnu.org/onlinedocs/gccint/Simple-Constraints.html#Simple- > Constraints Perhaps an error should be emitted for this situation?