https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114792
--- Comment #7 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Richard Biener <rgue...@gcc.gnu.org>: https://gcc.gnu.org/g:59ff81835fee22a9d4c9a481a4d1814583aae945 commit r14-10120-g59ff81835fee22a9d4c9a481a4d1814583aae945 Author: Richard Biener <rguent...@suse.de> Date: Thu Apr 25 08:08:24 2024 +0200 tree-optimization/114792 - order loops to unloops in CH When we use unloop_loops we have to make sure to have loops ordered inner to outer as otherwise we can wreck inner loop structure where unlooping relies on that being intact. The following re-sorts the vector of to unloop loops after copy-header as that adds to the vector in two places and the wrong order. PR tree-optimization/114792 * tree-ssa-loop-ch.cc (ch_order_loops): New function. (ch_base::copy_headers): Sort loops to unloop inner-to-outer. * gcc.dg/torture/pr114792.c: New testcase.