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" } } */

Reply via email to