gccint: Define Subst Pattern Matching

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