https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68435
Bug ID: 68435 Summary: [6 Regression] Missed if-conversion optimization Product: gcc Version: 6.0 Status: UNCONFIRMED Keywords: missed-optimization Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: afomin.mailbox at gmail dot com CC: izamyatin at gmail dot com, kyrylo.tkachov at arm dot com, ysrumyan at gmail dot com Target Milestone: --- Build: x86_64-linux-gnu Created attachment 36772 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=36772&action=edit A reproducer Given the following code compiled with -fif-conversion, we miss if-conversion opportunity since r228194. int foo(char *p1, char *p2, int n) { int s = 0; int v; int i; for (i = 0; i < n; i++) { v = p1[i] - p2[i]; if (v >= 0) s += v; else s -= v; p1 = p2++; } return s; }