https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102725
--- Comment #12 from Georg-Johann Lay <gjl at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #1) > You need -fno-tree-loop-distribution -fno-tree-loop-distribute-patterns to > turn it off. There is another older bug about this for memcpy. This is also a documentation issue. Neither from the naming of that option nor from its documentation one can concluse that it inhibits open-coded-foo -> foo transformations. And IMO options that disable all builtin generations should be available on single function basis, like -fno-auto-strlen or whatever. Moreover, introducing a call to strlen in a function named "strlen" (or with assembly name "strlen") is not very wise.