https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77580
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- Note that for inlining to kick in this all has to be done during early optimization which is somewhat against its intent (perform transforms reducing code-size). Putting x > 10 ? f1 : f2 into the loop is also against any reasonable heuristics (move invariant stuff outside). Thus it's going to be tricky overall to teach GCC to handle this situation. Can you share preprocessed source of that "commonly used benchmark" (or name it at least?)