Use __aarch64__ for 64-bit ARM detection, not __arm64__

Many GCC versions don't define \_\_arm64\_\_.
Also, only most recent upstream versions of CLANG/LLVM define \_\_arm64\_\_.
\_\_aarch64\_\_ is generally the safest choice.