ARM64: start porting regression test suite from AArch64
ARM64: optimise (cmp x, (sub 0, y)) to (cmn x, y).

This transformation is only valid when being used for an EQ or NE
comparison since the flags change otherwise.
ARM64: add support for AArch64's addsub_ext.ll

There was one definite issue in ARM64 (the off-by-1 check for whether
a shift could be folded in) and one difference that is probably
correct: ARM64 didn't fold nodes with multiple uses into the
arithmetic operations unless optimising for code size.
ARM64: enable more regression tests from AArch64
ARM64: add patterns for csXYZ with reversed operands.

AArch64 tests for this, and it's obviously a good idea. Have to invert the
condition code, of course.
AArch64/ARM64: enable directcond.ll test on ARM64.

Code change is because optimizeCompareInstr didn't know how to pull the
condition code out of FCSEL instructions.