This is another follow up to https://reviews.llvm.org/D68098.
Add pattern matching for SVE vector instructions:
- add, sub, and, or, xor instructions
- sqadd, uqadd, sqsub, uqsub target-independent intrinsics
- bic intrinsics
- predicated add, sub, subr intrinsics
For this encoding set we left the sdag pattern out of the class itself and used the helper SVE_3_Op_Pat instead.
e.g.
In this case there's not much difference between approaches (both fulfil our goal of keeping basic patterns in SVEInstrFormats.td), but sometimes we need to ignore types and just match against register classes, or add in default predicates when matching unpredicated operations. Making more use of the helpers should make the code more maintainable, though our earlier codebase shared on github wasn't using them consistently.
I appreciate we haven't documented our intended use of helper functions or codegen conventions; I'll make a note to encourage more comments on them in future patches.