https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56766

--- Comment #12 from rguenther at suse dot de <rguenther at suse dot de> ---
On Thu, 11 Jun 2015, ubizjak at gmail dot com wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56766
> 
> --- Comment #11 from Uroš Bizjak <ubizjak at gmail dot com> ---
> (In reply to Richard Biener from comment #10)
> > So it works with
> > 
> > (define_insn "sse3_addsubv2df3"
> >   [(set (match_operand:V2DF 0 "register_operand" "=x,x")
> >         (vec_select:V2DF
> >           (vec_concat:V4DF
> >             (plus:V2DF
> >               (match_operand:V2DF 1 "register_operand" "0,x")
> >               (match_operand:V2DF 2 "nonimmediate_operand" "xm,xm"))
> >             (minus:V2DF (match_dup 2) (match_dup 1)))
> >           (parallel [(const_int 0) (const_int 3)])))]
> 
> You swapped non-commutative part of the insn. This should be:
> 
> (define_insn "*sse3_addsubv2df3_1"
>   [(set (match_operand:V2DF 0 "register_operand" "=x,x")
>         (vec_select:V2DF
>           (vec_concat:V4DF
>             (plus:V2DF
>               (match_operand:V2DF 2 "nonimmediate_operand" "xm,xm")
>               (match_operand:V2DF 1 "register_operand" "0,x"))
>             (minus:V2DF (match_dup 1) (match_dup 2)))
>           (parallel [(const_int 0) (const_int 3)])))]
>   "TARGET_SSE3"

As it is just 'naming' it shouldn't matter, no?

Reply via email to