we should not add explicit declaration there. arm_neon.h contains those prototype already. they will be available if the compiler configuration is with related builtin predefine, for example __ARM_FEATURE_CRYPTO.
so, actually, if there is any warning when compile these test programs, they are expected, and we rely on these warnings to check whether certain features are available. previously, I only verified on arm-none-linux-gnueabi cross check, so have not exposed these regressions. no verified on arm-none-linux-gnueabihf, regression gone away on arm directory. make check RUNTESTFLAGS="aapcs.exp neon.exp acle.exp simd.exp arm.exp" ok for trunk? gcc/testsuite/ * lib/target-supports.exp (check_effective_target_arm_crypto_ok_nocache): Remove declaration for vaeseq_u8. (check_effective_target_arm_neon_fp16_ok_nocache): Remove declaration for vcvt_f16_f32. (check_effective_target_arm_neonv2_ok_nocache): Remove declaration for vfma_f32.
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index 91460c2..4398345 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -2404,7 +2404,6 @@ proc check_effective_target_arm_crypto_ok_nocache { } { foreach flags {"" "-mfloat-abi=softfp" "-mfpu=crypto-neon-fp-armv8" "-mfpu=crypto-neon-fp-armv8 -mfloat-abi=softfp"} { if { [check_no_compiler_messages_nocache arm_crypto_ok object { #include "arm_neon.h" - extern uint8x16_t vaeseq_u8 (uint8x16_t, uint8x16_t); uint8x16_t foo (uint8x16_t a, uint8x16_t b) { @@ -2549,7 +2548,6 @@ proc check_effective_target_arm_neon_fp16_ok_nocache { } { "-mfpu=neon-fp16 -mfloat-abi=softfp"} { if { [check_no_compiler_messages_nocache arm_neon_fp_16_ok object { #include "arm_neon.h" - extern float16x4_t vcvt_f16_f32 (float32x4_t); float16x4_t foo (float32x4_t arg) { @@ -2625,7 +2623,6 @@ proc check_effective_target_arm_neonv2_ok_nocache { } { foreach flags {"" "-mfloat-abi=softfp" "-mfpu=neon-vfpv4" "-mfpu=neon-vfpv4 -mfloat-abi=softfp"} { if { [check_no_compiler_messages_nocache arm_neonv2_ok object { #include "arm_neon.h" - extern float32x2_t vfma_f32 (float32x2_t, float32x2_t, float32x2_t); float32x2_t foo (float32x2_t a, float32x2_t b, float32x2_t c) {