This test expected if-conversion to happen for a sequence which appears
to always cost more than a branchy sequence. This was exposed by a
recent change to the if-converter to add checking in a path where it was
missing.
So I've just adjusted the test to assume it should never if-convert into
cmov instructions.
Committed to the trunk. There's a few of the embedded targets that are
regressing in similar manners, so I'm not closing the PR yet.
jeff
commit f1f18198b069f461155191ecba41bc87bf5689dd
Author: Jeff Law <jlaw@ventanamicro>
Date: Fri Apr 21 12:22:24 2023 -0600
Adjust x86 testsuite for recent if-conversion cost checking
gcc/testsuite
PR testsuite/109549
* gcc.target/i386/cmov6.c: No longer expect this test to
generate 'cmov' instructions.
diff --git a/gcc/testsuite/gcc.target/i386/cmov6.c
b/gcc/testsuite/gcc.target/i386/cmov6.c
index 535326e4c2a..5111c8a9099 100644
--- a/gcc/testsuite/gcc.target/i386/cmov6.c
+++ b/gcc/testsuite/gcc.target/i386/cmov6.c
@@ -1,6 +1,9 @@
/* { dg-do compile } */
/* { dg-options "-O2 -march=k8" } */
-/* { dg-final { scan-assembler "cmov\[^6\]" } } */
+/* if-converting this sequence would require two cmov
+ instructions and seems to always cost more independent
+ of the TUNE_ONE_IF_CONV setting. */
+/* { dg-final { scan-assembler-not "cmov\[^6\]" } } */
/* Verify that blocks are converted to conditional moves. */
extern int bar (int, int);