This takes the AARCH64_ARCH_EXT_NAME in AArch64TargetParser.def and uses
it to generate all the "if bit is set add this feature name" code.
Which gives us a bunch that we were missing. I've updated testing
to include those and reordered them to match the order in the .def.
The final part of the test will catch any missing extensions if
we somehow manage to not generate an if block for them.
This has changed the order of cc1's "-target-feature" output so I've
updated some tests in clang to reflect that.
Some of the ordering has changed and that means some tests look for new features. The CPU already had these features, the test just didn't check for them before and now they've been inserted into what it's looking for.
We could change all these to look for the exact feature set but to be conservative I stuck to re-ordering them and adding just enough to get them passing again.