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

--- Comment #5 from Li Pan <pan2.li at intel dot com> ---
(In reply to Jeffrey A. Law from comment #4)
> Ah, that clarifies things.  Thanks Pan.
> 
> So ISTM that we want the initial pattern to match the .vv form, then an
> alternate pattern to match the vx form when combine decides the costs are
> such that the .vx form is cheaper?  Is that how the other cases are
> currently handled?

Yes, you are right.

> 
> The other approach one could try would be to define a predicate that accepts
> both forms, then use that in the named insn.  That would result in the
> initial code generation using whatever seemed the most appropriate from the
> vectorizer's viewpoint.  A predicate can actually match more than just a
> terminal node.  We use this a lot for matching variable shift counts for
> scalar ops.  Not sure if it'd help here, but I mention it just in case it
> might help.

I see, thanks Jeff, we may take care of this in the next stage 1 I think.

Reply via email to