Hi,
This patch set tries to reduce the number of failed test cases for ARM based targets by leveraging the -mcpu=unset/-march=unset feature introduced in r15-3606-g7d6c6a0d15c. With the patch set applied, the test cases listed below will be reported as "regressions", but it's really that the test cases needs to be adapted to the different context they might be tested in. I have checked for regressions with r15-5047-g7e1d9f58858 as a baseline for Cortex-A7, Cortex-M0/3/4/7/33/55/85. For some of the regressions listed below, there is either patches shared that should fix them, or discussion has started on how to address them. FAIL: gcc.dg/vect/complex/fast-math-complex-mls-float.c -flto -ffat-lto-objects scan-tree-dump vect "Found COMPLEX_FMA" FAIL: gcc.dg/vect/complex/fast-math-complex-mls-float.c scan-tree-dump vect "Found COMPLEX_FMA" FAIL: gcc.target/arm/aes_xor_combine.c scan-assembler-not veor FAIL: gcc.target/arm/armv8_2-fp16-scalar-1.c (test for excess errors) FAIL: gcc.target/arm/armv8_2-fp16-scalar-2.c (test for excess errors) FAIL: gcc.target/arm/bfloat16_scalar_1_1.c check-function-bodies bfloat_mov_mr FAIL: gcc.target/arm/bfloat16_scalar_1_2.c check-function-bodies bfloat_mov_mr FAIL: gcc.target/arm/bfloat16_scalar_2_1.c check-function-bodies bfloat_mov_mr FAIL: gcc.target/arm/bfloat16_scalar_2_2.c check-function-bodies bfloat_mov_mr FAIL: gcc.target/arm/bfloat16_scalar_3_1.c check-function-bodies bfloat_mov_mr FAIL: gcc.target/arm/bfloat16_scalar_3_2.c check-function-bodies bfloat_mov_mr FAIL: gcc.target/arm/bfloat16_simd_1_2.c check-function-bodies stacktest1 FAIL: gcc.target/arm/bfloat16_simd_2_2.c check-function-bodies stacktest1 FAIL: gcc.target/arm/bfloat16_simd_3_2.c check-function-bodies stacktest1 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 FAIL: gcc.target/arm/mve/dlstp-compile-asm-2.c check-function-bodies test7 FAIL: gcc.target/arm/mve/dlstp-invalid-asm.c scan-assembler-not \tdlstp FAIL: gcc.target/arm/mve/dlstp-invalid-asm.c scan-assembler-not \tletp FAIL: gcc.target/arm/pr110268-1.c (test for excess errors) FAIL: gcc.target/arm/pr110268-2.c (test for excess errors) FAIL: gcc.target/arm/pr112337.c (test for excess errors) FAIL: gcc.target/arm/simd/bf16_vstn_1.c check-function-bodies test_vst3q_bf16 FAIL: gcc.target/arm/simd/mve-vabs.c scan-assembler-times memmove 3 UNRESOLVED: gcc.target/arm/armv8_2-fp16-scalar-1.c scan-assembler-times vabs\\.f16\\ts[0-9]+, s[0-9]+ 1 UNRESOLVED: gcc.target/arm/armv8_2-fp16-scalar-1.c scan-assembler-times vadd\\.f16\\ts[0-9]+, s[0-9]+, s[0-9]+ 1 UNRESOLVED: gcc.target/arm/armv8_2-fp16-scalar-1.c scan-assembler-times vcvt\\.f16\\.s32\\ts[0-9]+, s[0-9]+ 2 UNRESOLVED: gcc.target/arm/armv8_2-fp16-scalar-1.c scan-assembler-times vcvt\\.f16\\.s32\\ts[0-9]+, s[0-9]+, #1 1 UNRESOLVED: gcc.target/arm/armv8_2-fp16-scalar-1.c scan-assembler-times vcvt\\.f16\\.u32\\ts[0-9]+, s[0-9]+ 2 UNRESOLVED: gcc.target/arm/armv8_2-fp16-scalar-1.c scan-assembler-times vcvt\\.f16\\.u32\\ts[0-9]+, s[0-9]+, #1 1 UNRESOLVED: gcc.target/arm/armv8_2-fp16-scalar-1.c scan-assembler-times vcvt\\.s32\\.f16\\ts[0-9]+, s[0-9]+ 2 UNRESOLVED: gcc.target/arm/armv8_2-fp16-scalar-1.c scan-assembler-times vcvt\\.s32\\.f16\\ts[0-9]+, s[0-9]+, #1 1 UNRESOLVED: gcc.target/arm/armv8_2-fp16-scalar-1.c scan-assembler-times vcvt\\.u32\\.f16\\ts[0-9]+, s[0-9]+ 2 UNRESOLVED: gcc.target/arm/armv8_2-fp16-scalar-1.c scan-assembler-times vcvt\\.u32\\.f16\\ts[0-9]+, s[0-9]+, #1 1 UNRESOLVED: gcc.target/arm/armv8_2-fp16-scalar-1.c scan-assembler-times vcvta\\.s32\\.f16\\ts[0-9]+, s[0-9]+ 1 UNRESOLVED: gcc.target/arm/armv8_2-fp16-scalar-1.c scan-assembler-times vcvta\\.u32\\.f16\\ts[0-9]+, s[0-9]+ 1 UNRESOLVED: gcc.target/arm/armv8_2-fp16-scalar-1.c scan-assembler-times vcvtm\\.s32\\.f16\\ts[0-9]+, s[0-9]+ 1 UNRESOLVED: gcc.target/arm/armv8_2-fp16-scalar-1.c scan-assembler-times vcvtm\\.u32\\.f16\\ts[0-9]+, s[0-9]+ 1 UNRESOLVED: gcc.target/arm/armv8_2-fp16-scalar-1.c scan-assembler-times vcvtn\\.s32\\.f16\\ts[0-9]+, s[0-9]+ 1 UNRESOLVED: gcc.target/arm/armv8_2-fp16-scalar-1.c scan-assembler-times vcvtn\\.u32\\.f16\\ts[0-9]+, s[0-9]+ 1 UNRESOLVED: gcc.target/arm/armv8_2-fp16-scalar-1.c scan-assembler-times vcvtp\\.s32\\.f16\\ts[0-9]+, s[0-9]+ 1 UNRESOLVED: gcc.target/arm/armv8_2-fp16-scalar-1.c scan-assembler-times vcvtp\\.u32\\.f16\\ts[0-9]+, s[0-9]+ 1 UNRESOLVED: gcc.target/arm/armv8_2-fp16-scalar-1.c scan-assembler-times vdiv\\.f16\\ts[0-9]+, s[0-9]+, s[0-9]+ 1 UNRESOLVED: gcc.target/arm/armv8_2-fp16-scalar-1.c scan-assembler-times vfma\\.f16\\ts[0-9]+, s[0-9]+, s[0-9]+ 1 UNRESOLVED: gcc.target/arm/armv8_2-fp16-scalar-1.c scan-assembler-times vfms\\.f16\\ts[0-9]+, s[0-9]+, s[0-9]+ 1 UNRESOLVED: gcc.target/arm/armv8_2-fp16-scalar-1.c scan-assembler-times vmaxnm\\.f16\\ts[0-9]+, s[0-9]+, s[0-9]+ 1 UNRESOLVED: gcc.target/arm/armv8_2-fp16-scalar-1.c scan-assembler-times vminnm\\.f16\\ts[0-9]+, s[0-9]+, s[0-9]+ 1 UNRESOLVED: gcc.target/arm/armv8_2-fp16-scalar-1.c scan-assembler-times vmul\\.f16\\ts[0-9]+, s[0-9]+, s[0-9]+ 1 UNRESOLVED: gcc.target/arm/armv8_2-fp16-scalar-1.c scan-assembler-times vneg\\.f16\\ts[0-9]+, s[0-9]+ 1 UNRESOLVED: gcc.target/arm/armv8_2-fp16-scalar-1.c scan-assembler-times vrinta\\.f16\\ts[0-9]+, s[0-9]+ 1 UNRESOLVED: gcc.target/arm/armv8_2-fp16-scalar-1.c scan-assembler-times vrintr\\.f16\\ts[0-9]+, s[0-9]+ 1 UNRESOLVED: gcc.target/arm/armv8_2-fp16-scalar-1.c scan-assembler-times vrintz\\.f16\\ts[0-9]+, s[0-9]+ 1 UNRESOLVED: gcc.target/arm/armv8_2-fp16-scalar-1.c scan-assembler-times vsqrt\\.f16\\ts[0-9]+, s[0-9]+ 1 UNRESOLVED: gcc.target/arm/armv8_2-fp16-scalar-1.c scan-assembler-times vsub\\.f16\\ts[0-9]+, s[0-9]+, s[0-9]+ 1 UNRESOLVED: gcc.target/arm/armv8_2-fp16-scalar-2.c scan-assembler-times vadd.f16\\ts[0-9]+, s[0-9]+, s[0-9]+ 2 UNRESOLVED: gcc.target/arm/armv8_2-fp16-scalar-2.c scan-assembler-times vmla\\.f16\\ts[0-9]+, s[0-9]+, s[0-9]+ 1 UNRESOLVED: gcc.target/arm/armv8_2-fp16-scalar-2.c scan-assembler-times vmls\\.f16 2 UNRESOLVED: gcc.target/arm/armv8_2-fp16-scalar-2.c scan-assembler-times vmov.f16\\ts[0-9]+, #1\\.0e\\+0 4 UNRESOLVED: gcc.target/arm/armv8_2-fp16-scalar-2.c scan-assembler-times vnmla\\.f16\\ts[0-9]+, s[0-9]+, s[0-9]+ 1 UNRESOLVED: gcc.target/arm/armv8_2-fp16-scalar-2.c scan-assembler-times vnmls\\.f16\\ts[0-9]+, s[0-9]+, s[0-9]+ 1 XPASS: g++.target/arm/bfloat_cpp_typecheck.C (test for bogus messages, line 10) XPASS: g++.target/arm/bfloat_cpp_typecheck.C (test for bogus messages, line 11) Without the patch set, I see 270 unique tests that are failing. With the patch set, I see 213 unique tests that are failing. These figures have been collected using the following .exp files as argument to the dejagnu testsuite: arm.exp acle.exp cmse.exp mve.exp simd.exp pure-code.exp vect.exp complex.exp dg.exp=*_arm-* dg-torture.exp=arm-* arm-isr.exp Ok for trunk? Kind regards, Torbjörn