https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65177
--- Comment #21 from Jeffrey A. Law <law at redhat dot com> --- Isn't the real issue here that the test for redirecting the edge is wrong? If we're leaving the jump thread path, then we want those edges to reach their original targets. Thus merely testing if the destination is a duplicate block isn't the right test, we'd need to have the thread path and check if the outgoing edge is on the path or not. That may not be terribly easy to do in the current framework.