it is defined by gcc. __ARM_ARCH_8A__ (with trailing double underscore) seems to be a typo (or maybe historical)