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

Reply via email to