------- Comment #8 from ubizjak at gmail dot com 2008-08-01 19:32 ------- (In reply to comment #7)
> But it isn't necessary at all. We should use > > movq %xmm0,%xmm0 It looks to me that we should add: [(set (match_operand:V2DI 0 "register_operand" "=x") (vec_concat:V2DI (match_operand:DI 1 "nonimmediate_operand" "!x") (match_operand:DI 2 "vector_move_operand" " C")))] to the alternatives of all vec_concatv2di patterns. Perhaps we need something like that also for all vec_concatv2si patterns, since x can also hold SImode value, and movd fills upper part of target SSE reg with zeroes. "!" guarantees, that this alternative applies only when input value is already in SSE reg. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36992