Hi! This test apparently FAILs on s390x-linux, which is an effective target of both logical_op_short_circuit and branch_cost. The test has /* { dg-additional-options "-mbranch-cost=2" { target branch_cost } } */ and that option effectively makes the target ! logical_op_short_circuit, but the effective target just reflects the default setting. So, I think it should expect 0 ifs rather than 2 if -mbranch-cost=2 is used and 2 when that option isn't used.
Tested on x86_64-linux (which is a branch_cost but not logical_op_short_circuit effective target), Andreas, does this fix it on s390x-linux (I've only looked at the optimized dump using a cross-compiler)? Ok for trunk? 2018-11-22 Jakub Jelinek <ja...@redhat.com> PR testsuite/85368 * gcc.dg/tree-ssa/phi-opt-11.c: For branch_cost targets, expect 0 ifs rather than 0 or 2 depending on logical_op_short_circuit. --- gcc/testsuite/gcc.dg/tree-ssa/phi-opt-11.c.jj 2018-01-17 12:03:37.768893116 +0100 +++ gcc/testsuite/gcc.dg/tree-ssa/phi-opt-11.c 2018-11-22 16:33:15.541947777 +0100 @@ -23,5 +23,5 @@ int h(int a, int b, int c, int d) return a; } -/* { dg-final { scan-tree-dump-times "if" 0 "optimized" { target { ! logical_op_short_circuit } } } } */ -/* { dg-final { scan-tree-dump-times "if" 2 "optimized" { target logical_op_short_circuit } } } */ +/* { dg-final { scan-tree-dump-times "if" 0 "optimized" { target { { ! logical_op_short_circuit } || branch_cost } } } } */ +/* { dg-final { scan-tree-dump-times "if" 2 "optimized" { target { logical_op_short_circuit && { ! branch_cost } } } } } */ Jakub