The test's expectation of shrink-wrapping is only met starting at power6. At earlier CPUs, the register allocator prefers to preserve an incoming argument around a call in a call-saved register, rather than in a stack slot, and that prevents shrink-wrapping.
Tested with gcc-14 targeting ppc-vx7r2 and ppc64-vx7r2. Also tested with trunk on ppc64le-linux-gnu, and with gcc-14 targeting powerpc-elf. Ok to install? for gcc/testsuite/ChangeLog * gcc.target/powerpc/pr110071.c: Expect shrink-wrapping starting at power6. --- gcc/testsuite/gcc.target/powerpc/pr110071.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gcc/testsuite/gcc.target/powerpc/pr110071.c b/gcc/testsuite/gcc.target/powerpc/pr110071.c index 282349c744425..0548e8bfa790d 100644 --- a/gcc/testsuite/gcc.target/powerpc/pr110071.c +++ b/gcc/testsuite/gcc.target/powerpc/pr110071.c @@ -12,4 +12,6 @@ foo (long i, long cond) return i+1; } -/* { dg-final { scan-rtl-dump-times "Performing shrink-wrapping" 1 "pro_and_epilogue" } } */ +/* Before power6, i is preserved in a call-saved register rather than in + memory, which prevents shrink-wrapping. */ +/* { dg-final { scan-rtl-dump-times "Performing shrink-wrapping" 1 "pro_and_epilogue" { target has_arch_pwr6 } } } */ -- 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!