https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69942
--- Comment #1 from Yuri Rumyantsev <ysrumyan at gmail dot com> --- The cause of issue is that before ce1 phase pde (or pre) transformation has been done to remove partial redundant moves to variable i and j, i.e. code int i = x; int j = y; if (x > y) { i = a;' j = i; } has been transformed to int i,j; if (x > y) { i = a; j = i; } else { i = x; i = y; } and ifcvt phase does speculative motion else-part before if-part, i.e. to original code. This transformation is considered as true change and test is failed. I assume that test must accept also '6 basic blocks,' to get test passed.