https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68541
Bug ID: 68541 Summary: [6 Regression] Path splitting causes if-conversion miss Product: gcc Version: 6.0 Status: UNCONFIRMED Keywords: missed-optimization Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: afomin.mailbox at gmail dot com CC: izamyatin at gmail dot com, law at redhat dot com, ysrumyan at gmail dot com Target Milestone: --- Target: i686-*-* Created attachment 36835 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=36835&action=edit A reproducer Due to path splitting on SSA trees introduced in r230364, we miss an if-conversion opportunity for (cond ? s++ : s--) expressions. As for now (r230865), when compiling the attached testcase with -O2, after RTL ce1 pass we have 3 possible IF blocks searched. 1 IF blocks converted. 2 true changes made. while compiling it with -O2 -fno-split-paths results in 1 possible IF blocks searched. 0 IF blocks converted. 0 true changes made.