https://gcc.gnu.org/g:8e55b1cb5fddb7f8cd8772ca47d765dc8aee1a2c
commit 8e55b1cb5fddb7f8cd8772ca47d765dc8aee1a2c Author: Alexandre Oliva <ol...@adacore.com> Date: Thu Apr 10 17:21:09 2025 -0300 [testsuite] [ppc] add -mdejagnu-cpu=power7 to pr17381.c Below power7, it seems to be more profitable to compress the floating-point constants and use an additional fp register move to "extend" it. Only at power7 and above do we keep the constants separate and load them, getting to the expected 'fmr' count. for gcc/testsuite/ChangeLog * gcc.target/powerpc/pr17381.c: Compile for power7. Justify. Diff: --- gcc/testsuite/gcc.target/powerpc/pr17381.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gcc/testsuite/gcc.target/powerpc/pr17381.c b/gcc/testsuite/gcc.target/powerpc/pr17381.c index e6222c130af1..b137c687776e 100644 --- a/gcc/testsuite/gcc.target/powerpc/pr17381.c +++ b/gcc/testsuite/gcc.target/powerpc/pr17381.c @@ -1,6 +1,8 @@ /* PR target/17381 - Unnecessary register move for float extend */ /* { dg-do compile } */ -/* { dg-options "-O2" } */ +/* { dg-options "-mdejagnu-cpu=power7 -O2" } */ +/* Up to power6, we compress the floating-point constant 1.0 and share it with + 1.0f, but the float_extend comes out as a second fmr. */ double d; float test1(float fParm)