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

--- Comment #8 from Kirill Yukhin <kyukhin at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #7)
> So do you want to use reg_or_0_operand?  I don't think we usually tie output
> with input already in the predicates, except when match_dup is used.

That is the issue. reg_or_0_operand won't work (although it is better than
"vector_move_operand" since it is prohibits memory)

We want 2nd operand to be either:
1. const0_rtx
2. match_dup 0

I cannot see in gcc/genpreds.c if a reference to another operands is possible
from the other.

We might invent some complicated subst. But patterns look too complicated for
that.

Maybe extend genpreds.c and friends introducing new version of predicate which
will take instead of (op, mode) -> (op, mode, operands).
Not sure in volume of efforts though.
Really hope there's some simpler solution.

Reply via email to