https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119704
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Component|middle-end |target --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- mmemset-strategy is only used if not doing move by pieces. This is why the magic 40 comes into play bool pieces_ok = CONST_INT_P (size) && can_move_by_pieces (INTVAL (size), align); Which calls into default_use_by_pieces_infrastructure_p. So basically 5 instructions can be used without using the mmemset-strategy which for 64bit without sse is up to 40 bytes.