This patch adds MC support for the entire Arm SVE2 instruction set, along with
flag changes enabling the feature.
All new instructions are defined in the existing AArch64SVEInstrInfo.td and
SVEInstrFormats.td TableGen files, with the latter containing the more generic
multiclasses.
The majority of instructions are enabled with the sve2 feature flag, although
there are 4 additional architecture features enabling other instructions, these
are: sve2-aes, sve2-sm4, sve2-sha3, and bitperm.
For more information please refer to the ISA spec available at:
https://developer.arm.com/docs/ddi0602/latest
Instead of repeating this list everywhere you can at top level :
class AArch64UnsupportedF { list<Predicate> F; }
def SVEUnsupported F : AArch64UnsupportedF {
}
and then in each AArch64SchedX.td ::
list<Predicate> UnsupportedFeatures = SVEUnsupported.F;
TableGen curently does not have globals otherwise it would be simpler, but this idiom works