https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98172

--- Comment #4 from Jan Hubicka <hubicka at ucw dot cz> ---
> > What kind of updates you propose?
> 
> For one thing, memcpy/memset should be expanded to REP MOVSB/STOSB, never
> MOVSL/MOVSQ.

For core cost tables we use:

/* core_cost should produce code tuned for Core familly of CPUs.  */            
static stringop_algs core_memcpy[2] = {                                         
  {libcall, {{1024, rep_prefix_4_byte, true}, {-1, libcall, false}}},           
  {libcall, {{24, loop, true}, {128, rep_prefix_8_byte, true},                  
             {-1, libcall, false}}}};                                           
static stringop_algs core_memset[2] = {                                         
  {libcall, {{6, loop_1_byte, true},                                            
             {24, loop, true},                                                  
             {8192, rep_prefix_4_byte, true},                                   
             {-1, libcall, false}}},                                            
  {libcall, {{24, loop, true}, {512, rep_prefix_8_byte, true},                  
             {-1, libcall, false}}}};                                           

So we use mosl/modsw for blocks up to 8k in some cases.
What is output of contrib/bench-stringop on later cores?

Honza
> 
> -- 
> You are receiving this mail because:
> You are on the CC list for the bug.

Reply via email to