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.