https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54089
--- Comment #60 from Alexander Klepikov <klepikov.alex+bugs at gmail dot com> --- > Maybe it's easier to add some shift specific passes. Well, I couldn't think of anything better and ported the loop optimization pass. More precisely, all loop optimization passes, because they are tied to each other. They run after split1 pass. And it worked! I want to beleive that another loop optimization pass won't break anything because loops are already optimized. If that's redundant, I thought of expanding libcall if it's inside a loop before loop optimization passes.