Next: , Previous: Define Subst Example, Up: Define Subst

16.21.2 Pattern Matching in define_subst

All expressions, allowed in define_insn or define_expand, are allowed in the input-template of define_subst, except match_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 of match_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 and match_operators from the original pattern if the modes match and match_operator from the input pattern has the same number of operands as the operator from the original pattern.