https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70308
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |missed-optimization Component|middle-end |target --- Comment #8 from Andrew Pinski <pinskia at gcc dot gnu.org> --- /* Even if the string operation call is cold, we still might spend a lot of time processing large blocks. */ if (optimize_function_for_size_p (cfun) || (optimize_insn_for_size_p () && (max_size < 256 || (expected_size != -1 && expected_size < 256)))) optimize_for_speed = false; else optimize_for_speed = true; cost = optimize_for_speed ? ix86_cost : &ix86_size_cost; Somewhere in decide_alg decides rep_4byte vs rep_8byte for optimize for size. So this is a target issue.