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

Reply via email to