arm: testsuite: improve guard checks for arm_neon.h

The header file arm_neon.h provides the Advanced SIMD intrinsics that
are available on armv7 or later A & R profile cores.  However, they
are not compatible with M-profile and we also need to ensure that the
FP instructions are enabled (with -mfloat-abi=softfp/hard).  That
leads to some complicated checking as arm_neon.h includes stdint.h
and, at least on linux, that can require that the appropriate ABI
bits/ headers are also installed.

This patch adds a new check to target-supports.exp to establish the
minimal set of option overrides needed to enable use of this header in
a test.

gcc/testsuite:
	* lib/target-supports.exp
	(check_effective_target_arm_neon_h_ok_nocache): New function.
	(check_effective_target_arm_neon_h_ok): Likewise.
	(add_options_for_arm_neon_h): Likewise.
	(check_effective_target_arm_libc_fp_abi_ok_nocache): Allow any
	Arm target, not just arm32.
	* gcc.target/arm/attr-neon-builtin-fail.c: Use it.
	* gcc.target/arm/attr-neon-builtin-fail2.c: Likewise.
	* gcc.target/arm/attr-neon-fp16.c: Likewise.
	* gcc.target/arm/attr-neon2.c: Likewise.

(cherry picked from commit b7f5d9114801716924a67ea393f0c30ab793e505)
5 files changed