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