Define Subst Pattern Matching (GNU Compiler Collection (GCC) Internals) (original) (raw)
16.22.2 Pattern Matching in define_subst
¶
All expressions, allowed in define_insn
or define_expand
, are allowed in the input-template of define_subst
, exceptmatch_par_dup
, match_scratch
, match_parallel
. The meanings of expressions in the input-template were changed:
match_operand
matches any expression (possibly, a subtree in RTL-template), if modes of the match_operand
and this expression are the same, or mode of the match_operand
is VOIDmode
, or this expression is match_dup
, match_op_dup
. If the expression is match_operand
too, and predicate ofmatch_operand
from the input pattern is not empty, then the predicates are compared. That can be used for more accurate filtering of accepted RTL-templates.
match_operator
matches common operators (like plus
,minus
), unspec
, unspec_volatile
operators andmatch_operator
s from the original pattern if the modes match andmatch_operator
from the input pattern has the same number of operands as the operator from the original pattern.