The optimization levels pr105314.c is iterated over are needlessly overridden with "-O2", limiting the coverage of the test case to that level, perhaps with additional options the original optimization level has been supplied with. We could prevent the extra iterations other than "-O2" from being run, but the transformation made by if-conversion is also expected to happen at other optimization levels, so include them all, and also make sure no reverse-condition branch appears in output, moving the `dg-final' command to the bottom, as with most test cases.
gcc/testsuite/ * gcc.target/riscv/pr105314.c: Replace `dg-options' command with `dg-skip-if'. Also reject "bne" with `dg-final'. --- Hi, Technically it's not a single self-contained change and it could be 3 instead, but I think there's little point in splitting it further. Maciej --- gcc/testsuite/gcc.target/riscv/pr105314.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) gcc-test-riscv-pr105314-levels.diff Index: gcc/gcc/testsuite/gcc.target/riscv/pr105314.c =================================================================== --- gcc.orig/gcc/testsuite/gcc.target/riscv/pr105314.c +++ gcc/gcc/testsuite/gcc.target/riscv/pr105314.c @@ -1,7 +1,6 @@ /* PR rtl-optimization/105314 */ /* { dg-do compile } */ -/* { dg-options "-O2" } */ -/* { dg-final { scan-assembler-not "\tbeq\t" } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-Og" "-Os" "-Oz" } } */ long foo (long a, long b, long c) @@ -10,3 +9,5 @@ foo (long a, long b, long c) a = 0; return a; } + +/* { dg-final { scan-assembler-not "\\s(?:beq|bne)\\s" } } */