https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114568
--- Comment #5 from Maxim Kuvyrkov <mkuvyrkov at gcc dot gnu.org> --- Looking at this problem more, I think the issue is due to ARM target trying hard to avoid UNSUPPORTED tests, instead of embracing them. For the vectorization NEON check we have ... === proc check_effective_target_arm_neon_ok_nocache { } { global et_arm_neon_flags set et_arm_neon_flags "" if { [check_effective_target_arm32] } { foreach flags {"" "-mfloat-abi=softfp" "-mfpu=neon" "-mfpu=neon -mfloat-abi=softfp" "-mfpu=neon -mfloat-abi=softfp -march=armv7-a" "-mfloat-abi=hard" "-mfpu=neon -mfloat-abi=hard" "-mfpu=neon -mfloat-abi=hard -march=armv7-a"} { if { [check_no_compiler_messages_nocache arm_neon_ok object { #include <arm_neon.h> ... === ... where target tries to find a set of flags compatible with _any_ of the built multilibs to run the testsuite. I think this is excessive, since each multilib should be tested on its own merits, and if armv7-m does not support vectorization, there should be no effort to try and switch to armv7-a or armv8-m+mve multilib in order to run vectorization tests. In other words, vectorization tests should be marked UNSUPPORTED in armv7-m, and PASS/FAIL in armv7-a and/or armv8-m+mve. In practical terms, my proposed solution to this problem is to remove all "foreach flags" options except for the default "". ARM maintainers, what am I missing?