On Tue, 20 May 2025 at 06:30, Alexandre Oliva <ol...@adacore.com> wrote: > > > (The backport I've only just posted is not enough for the tests to pass; > there's another problem) > > r14-10824 is a backport of r15-4549, that rewrote and extended into > check-function-bodies the save/restore expectations introduced in > r15-2160. Alas, r15-2160 mentions an insn_propagation patch that > enables those specific save/restore insns to be generated, presumably > r15-1945, and this change is not present in gcc-14, so we get > different save/restore insns, and the test fails, even after > backporting r15-1035, that allows for single-character function names > in check-function-bodies. >
I thought Torbjorn had tested this on gcc-14 and needed it to have cleaner results, but https://gcc.gnu.org/pipermail/gcc-patches/2024-November/667448.html indicates we already noticed the failure some time ago... > Drop the save/restore checks that don't belong in gcc-14. > > Tested with gcc-14 on arm-vxworks7r2. Ok to install in gcc-14? > > > for gcc/testsuite/ChangeLog > > * gcc.target/arm/fp16-aapcs-1.c: Drop save/restore checks. > * gcc.target/arm/fp16-aapcs-2.c: Likewise. > * gcc.target/arm/fp16-aapcs-3.c: Likewise. > * gcc.target/arm/fp16-aapcs-4.c: Likewise. > --- > gcc/testsuite/gcc.target/arm/fp16-aapcs-1.c | 7 ++----- > gcc/testsuite/gcc.target/arm/fp16-aapcs-2.c | 8 -------- > gcc/testsuite/gcc.target/arm/fp16-aapcs-3.c | 7 ++----- > gcc/testsuite/gcc.target/arm/fp16-aapcs-4.c | 8 -------- > 4 files changed, 4 insertions(+), 26 deletions(-) > > diff --git a/gcc/testsuite/gcc.target/arm/fp16-aapcs-1.c > b/gcc/testsuite/gcc.target/arm/fp16-aapcs-1.c > index b18d7cda65c8d..450c52fcd5c6c 100644 > --- a/gcc/testsuite/gcc.target/arm/fp16-aapcs-1.c > +++ b/gcc/testsuite/gcc.target/arm/fp16-aapcs-1.c > @@ -29,10 +29,8 @@ Below block is for non-armv8.1 > ** ... > ** vmov\.f32 s0, \2 > ** ) > -** vstr\.32 s2, \[sp, #4\] @ int > +** ... > ** bl swap > -** vldr\.32 s2, \[sp, #4\] @ int > -** vmov\.f32 s0, s2 > > ** | > > @@ -50,9 +48,8 @@ Below block is for armv8.1 > ** ... > ** vmov s0, \4 @ __fp16 > ** ) > -** vstr\.32 s2, \[sp, #4\] @ int > +** ... > ** bl swap > -** vldr\.16 s0, \[sp, #4\] > > ** ) > ** ... > diff --git a/gcc/testsuite/gcc.target/arm/fp16-aapcs-2.c > b/gcc/testsuite/gcc.target/arm/fp16-aapcs-2.c > index 48510e895368d..c15f29dd3e44b 100644 > --- a/gcc/testsuite/gcc.target/arm/fp16-aapcs-2.c > +++ b/gcc/testsuite/gcc.target/arm/fp16-aapcs-2.c > @@ -28,14 +28,6 @@ swap (__fp16, __fp16); > ** ) > ** ... > */ > -/* > -** F: { target arm_little_endian } > -** ... > -** str r2, \[sp, #4\] > -** bl swap > -** ldrh r0, \[sp, #4\] @ __fp16 Is it expected that you also remove the 'bl swap' part? > -** ... > -*/ > __fp16 > F (__fp16 a, __fp16 b, __fp16 c) > { > diff --git a/gcc/testsuite/gcc.target/arm/fp16-aapcs-3.c > b/gcc/testsuite/gcc.target/arm/fp16-aapcs-3.c > index 7238ef3a02e03..1102dc7344919 100644 > --- a/gcc/testsuite/gcc.target/arm/fp16-aapcs-3.c > +++ b/gcc/testsuite/gcc.target/arm/fp16-aapcs-3.c > @@ -29,10 +29,8 @@ Below block is for non-armv8.1 > ** ... > ** vmov\.f32 s0, \2 > ** ) > -** vstr\.32 s2, \[sp, #4\] @ int > +** ... > ** bl swap > -** vldr\.32 s2, \[sp, #4\] @ int > -** vmov\.f32 s0, s2 > > ** | > > @@ -50,9 +48,8 @@ Below block is for armv8.1 > ** ... > ** vmov s0, \4 > ** ) > -** vstr\.32 s2, \[sp, #4\] @ int > +** ... > ** bl swap > -** vldr\.16 s0, \[sp, #4\] > > ** ) > ** ... > diff --git a/gcc/testsuite/gcc.target/arm/fp16-aapcs-4.c > b/gcc/testsuite/gcc.target/arm/fp16-aapcs-4.c > index 13f08d8afa32d..00a44d15129a8 100644 > --- a/gcc/testsuite/gcc.target/arm/fp16-aapcs-4.c > +++ b/gcc/testsuite/gcc.target/arm/fp16-aapcs-4.c > @@ -28,14 +28,6 @@ swap (__fp16, __fp16); > ** ) > ** ... > */ > -/* > -** F: { target arm_little_endian } > -** ... > -** str r2, \[sp, #4\] > -** bl swap > -** ldrh r0, \[sp, #4\] @ __fp16 Same question here? Thanks, Christophe > -** ... > -*/ > __fp16 > F (__fp16 a, __fp16 b, __fp16 c) > { > > -- > Alexandre Oliva, happy hacker https://blog.lx.oliva.nom.br/ > Free Software Activist FSFLA co-founder GNU Toolchain Engineer > More tolerance and less prejudice are key for inclusion and diversity. > Excluding neuro-others for not behaving ""normal"" is *not* inclusive!