On Fri, Dec 07, 2012 at 08:43:05AM -0600, Richard Henderson wrote:
> > +(define_insn "<sse>_vm<plusminus_insn><mode>3<vec_merge_or_concat>"
> >    [(set (match_operand:VF_128 0 "register_operand" "=x,x")
> >     (vec_merge:VF_128
> > -     (plusminus:VF_128
> > -       (match_operand:VF_128 1 "register_operand" "0,x")
> > -       (match_operand:VF_128 2 "nonimmediate_operand" "xm,xm"))
> > +     (vec_duplicate:VF_128
> > +       (plusminus:<ssescalarmode>
> > +         (vec_select:<ssescalarmode>
> > +           (match_operand:VF_128 1 "register_operand" "0,x")
> > +           (parallel [(const_int 0)]))
> > +         (match_operand:<ssescalarmode> 2 "nonimmediate_operand" "xm,xm")))
> >       (match_dup 1)
> >       (const_int 1)))]
> >    "TARGET_SSE"
> >    "@
> >     <plusminus_mnemonic><ssescalarmodesuffix>\t{%2, %0|%0, %2}
> >     v<plusminus_mnemonic><ssescalarmodesuffix>\t{%2, %1, %0|%0, %1, %2}"
> >    [(set_attr "isa" "noavx,avx")
> >     (set_attr "type" "sseadd")
> >     (set_attr "prefix" "orig,vex")
> >     (set_attr "mode" "<ssescalarmode>")])
> 
> Did this really trigger as a substitution?  It's not supposed to have, since
> you didn't add (set_attr "replace_vec_merge_with_vec_concat" "yes")...

That was the older proposal, the current way to trigger it is using
the substitution attr somewhere, typically in pattern name
- <vec_merge_or_concat> in the above case.

        Jakub

Reply via email to