https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108992
--- Comment #2 from Nikita Kniazev <nok.raven at gmail dot com> --- > Why do you think this is a bug? > I don't see anything wrong with the newer versions of gcc. > Duplicating the basic blocks is done on purpose for speed reasons. I understand that removing diamonds is done to open more optimization opportunities but in this case there is none; not undoing the cloning leads to code size increases which creates unnecessary pressure on instruction cache.