On 2024-10-07 10:53, Andre Vieira (lists) wrote:
Hi Torbjorn,
On 07/10/2024 09:08, Torbjorn SVENSSON wrote:
There are 3 test cases that are fixed with these 2 commits, but there
is also a bunch that is marked as new fails.
Looking at the test cases that fail, there are 2 different kinds of
failures.
1. gcc.target/arm/attr_thumb.c: This test case fails due to this
difference:
--- /dev/fd/63 2024-10-07 08:25:49.595309010 +0000
+++ /dev/fd/62 2024-10-07 08:25:49.575309010 +0000
@@ -33,9 +33,10 @@
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- cmp r0, #0
- ite eq
- moveq r0, #5
- movne r0, #1
+ cbz r0, .L3
+ movs r0, #1
+ bx lr
+.L3:
+ movs r0, #5
bx lr
.size foo, .-foo
I'll leave the rest of the investigation of the reason for the
failure, and the fix, to you Andre.
I think this test was meant to check __attribute__((thumb)) worked by
switching to thumb, forcing a specific type of codegen, which no longer
holds for armv8.1-m, so this is a testism that needs some creative
thinking, probably best to skip if armv8.1-m.
2. All other the test cases in the list above: These need to be
adapted to the change introduced in r15-3606-g7d6c6a0d15c to have the
proper arch.
I've sent a patch that should fix these "regressions" in https://
gcc.gnu.org/pipermail/gcc-patches/2024-October/664611.html.
I presume you are using -march=armv8.1-m.main+mve.fp+fp.dp for these
rather than -mcpu? If I do:
RUNTESTFLAGS="--target_board=<...>/-mcpu=cortex-m55/-mfloat-abi=hard
arm.exp=vseleqdf.c" then it works just fine for me as the -mcpu=unset
does it work, but the -march=armv8.1-m.main+mve.fp+fp.dp does fail. I'll
talk to Richard E about this one.
For these results, I did as before. This is the command line that was
used for gcc.target/arm/vseleqdf.c:
.../bin/arm-none-eabi-gcc .../gcc/testsuite/gcc.target/arm/vseleqdf.c
-mthumb -march=armv8.1-m.main+mve+pacbti -mcpu=cortex-m85
-mfloat-abi=hard -mfpu=fpv5-d16 -fdiagnostics-plain-output -O2
-mcpu=cortex-a57 -mfpu=fp-armv8 -mfloat-abi=softfp -ffat-lto-objects
-fno-ident -S -o vseleqdf.s
Thanks for helping with the testing I'll send a patch with the testism
fixes up later.
I am however quite confident that these are both testisms. @Christophe:
Any chance you can run the second patch through the bootstrap CI for
arm-none-linux-gnueabihf ? Might end up committing the 2nd patch first
if it helps fix that?
I think the reason for the bootstrap failure is simply:
- the 2nd argument to arm_noce_conversion_profitable_p is never
referenced in the function.
- the variable "set" in arm_is_v81m_cond_insn might not be defined
before the if-statement (in the case the while loop is never executed).
Kind regards,
Torbjörn