Hi,

Sorry for the mess. I'm not sure how I managed to miss this...
Maybe I tested the GCC15 binaries on the GCC14 test tree.
Anyway, here is a fix that uses the assembler generated in GCC14.

The csinc instruction was introduced in r15-1579-g792f97b44ff that
was not backported.

Ok for releases/gcc-14?

--

In r14.2.0-376-g724446556e5, I accidentally introduced a regression in
the expected assembler as the csinc instruction was not used for
armv8.1-m.main.

The generated assembler for armv8.1-m.main is:
        push    {r3, r4, r5, lr}
        ldr     r4, .L5
        ldr     r5, [r4]
        adds    r4, r2, #1
        tst     r5, #4
        it      ne
        movne   r2, r4
        bl      bar
        movs    r0, #0
        pop     {r3, r4, r5, pc}

gcc/testsuite/ChangeLog:

        * gcc.target/arm/epilog-1.c: Corrected armv8.1.m-main asm.

Signed-off-by: Torbjörn SVENSSON <torbjorn.svens...@foss.st.com>
---
 gcc/testsuite/gcc.target/arm/epilog-1.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/gcc/testsuite/gcc.target/arm/epilog-1.c 
b/gcc/testsuite/gcc.target/arm/epilog-1.c
index a1516456460..d765dc42b82 100644
--- a/gcc/testsuite/gcc.target/arm/epilog-1.c
+++ b/gcc/testsuite/gcc.target/arm/epilog-1.c
@@ -20,8 +20,10 @@ Below block is for non-armv8.1-m.main
 ** |
 
 Below block is for armv8.1-m.main
+**     adds    (r[0-9]+), r2, #1
 **     tst     r[0-9]+, #4
-**     csinc   r2, r2, r2, eq
+**     it      ne
+**     movne   r2, \1
 
 ** )
 **     bl      bar
-- 
2.25.1

Reply via email to