This emits (rule-level) checks for pattern predicates. That mostly includes
subtarget feature checks. This lets us emit a selector for basic FP binops.
Using all predicates as-is in the selector emitter is not going to be
trivial in general: predicates can be arbitrary code (running in
a <Target>DAGToDAGISel member), so, over time, we've grown some pretty
In the long run, we'll want to either:
- add first-class support for the different families of predicates
- add some mappings from DAGToDAGISel code to the GISel equivalent
Or a combination of both.
I originally tried to express each Predicate as a RuleMatcher
predicate child, but, without the extra checking and grouping of
predicate families, that just looked like noisy boilerplate.
In the meantime, use the aggregate raw predicate check code string.