Chapter 16.4, "RTL Template" in GCC Internals Manual, found at https://gcc.gnu.org/onlinedocs/gccint/RTL-Template.html#RTL-Template has this to say about match_scratch:
" (match_scratch:m n constraint) This expression is also a placeholder for operand number n and indicates that operand must be a scratch or reg expression. When matching patterns, this is equivalent to (match_operand:m n "scratch_operand" pred) " I'm wondering what is "pred" in this context? I'm thinking that "scratch_operand" might be the predicate, so should there read "constraint" in place of "pred" in the last clause? I'm sorry if this is an idiotic question, I'm just trying to digest all the information, so I might be overly pedantic about the matter. I just want to be sure I understand what I read. I'm sure it'll all make sense when I actually need to use this expression. Sorry to have taken your time. -Panu