This effective target implicitly expects -march=armv8-a, otherwise with a toolchain configured for instance with --with-cpu=cortex-m0 --with-float=soft, it fails even when trying -mfpu=crypto-neon-fp-armv8 -mfloat-abi=softfp: arm_neon.h:45:2: error: #error "NEON intrinsics not available with the soft-float ABI. Please use -mfloat-abi=softfp or -mfloat-abi=hard"
With this patch, the effective target succeeds using -mfpu=crypto-neon-fp-armv8 -mfloat-abi=softfp -mcpu=unset -march=armv8-a thus enabling a few more tests. For instance with a toolchain defaulting to cortex-m0, we now enable: gcc.target/arm/aes-fuse-1.c gcc.target/arm/aes-fuse-2.c gcc.target/arm/aes_xor_combine.c gcc.target/arm/attr-neon3.c gcc.target/arm/crypto-* gcc.target/arm/simd: several *p64* tests Out of these, a few are failing, but this should be addressed separately: FAIL: gcc.target/arm/aes-fuse-1.c scan-assembler-times crypto_aese_fused 6 FAIL: gcc.target/arm/aes-fuse-2.c scan-assembler-times crypto_aesd_fused 6 With a toolchain defaulting to cortex-m55, we have these additional failures: FAIL: gcc.target/arm/attr-neon3.c (test for excess errors) FAIL: gcc.target/arm/crypto-vsha1cq_u32.c scan-assembler-times vdup.32\\tq[0-9]+, r[0-9]+ 4 FAIL: gcc.target/arm/crypto-vsha1h_u32.c scan-assembler-times vdup.32\\tq[0-9]+, r[0-9]+ 4 FAIL: gcc.target/arm/crypto-vsha1mq_u32.c scan-assembler-times vdup.32\\tq[0-9]+, r[0-9]+ 4 FAIL: gcc.target/arm/crypto-vsha1pq_u32.c scan-assembler-times vdup.32\\tq[0-9]+, r[0-9]+ 4 gcc/testsuite/ChangeLog: * lib/target-supports.exp (check_effective_target_arm_crypto_ok_nocache): Add "-mcpu=unset -march=armv8-a". --- gcc/testsuite/lib/target-supports.exp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index 7ace678518e..a88f9be8851 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -5346,8 +5346,8 @@ proc check_effective_target_arm_crypto_ok_nocache { } { { return vaeseq_u8 (a, b); } - } "$flags"] } { - set et_arm_crypto_flags $flags + } "$flags -mcpu=unset -march=armv8-a"] } { + set et_arm_crypto_flags "$flags -mcpu=unset -march=armv8-a" return 1 } } -- 2.34.1