Maybe your issue becomes a bit clearer.
The UMAAL instruction is a DSP instruction that is available only on Cortex-M4 and above as far as I've gathered, and for the M4, DSP instructions are possibly optional? Not sure.
The M4 and M7 are ARMv7 architectures.
Yes, the ARM familty has become a bit complex, but if you stick to a limited number of supported variants, figuring out what kind of instructions they support shouldn't be too hard.
I'm not sure that the condition '__ARM_ARCH > 6' is enough to guarantee that UMAAL is available. Conversely, while I'm personally not aware of any ARMv6-based CPU that has this instruction, it may be a possibility.
Unless your goal is really to write completely reusable code for any ARM-based CPU, without anything to modify, though, I'm not sure that detecting the availability of the UMAAL instruction is the best approach, however nice it looks.
You could just define a macro that indicates it's supported based on the actual target that the code is being compiled for.
Alternatively, if you really want something more automated, you could do it at "build" time. A bit like autoconf tools do. So as a preliminary build step (that would be a dependency for all files that could use this assembly instruction), you could run the assembler on a very small assembly file containing this instruction, and if the assembler succeeds, define the macro that indicates the instruction is supported. Otherwise leave it undefined.