This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH RFC V4] Improve 64bit memcpy/memove for Corei7 with unaligned avx instruction


On Mon, Jul 29, 2013 at 11:52:55AM +0200, Andreas Jaeger wrote:
> On 07/29/2013 11:40 AM, ling.ma.program@gmail.com wrote:
> > From: Ma Ling <ling.ml@alibaba-inc.com>
> > 
> > We manage to avoid branch instructions, and force destination to be aligned
> > with avx instruction, then modified gcc.403 so that we can only measure memcpy function, 
> > gcc.403 benchmarks indicate the version improved performance from 4% to 14%
> > cmpaired with memcpy_sse2_unaligned on haswell machine.
> > 
> > case	avx_unaligned	sse2_unaligned	AVX vs SSE2
> > 200i	146833745		168384142	1.146767332
> > g23		1431207341		1557405243	1.088175835
> > 166i	350901531		379068674	1.08027079
> > cp-decl	370750774		395890196	1.067806796
> > c-type	763780824		810806468	1.061569553
> > expr2	986698539		1067232192	1.081619309
> > expr	727016829		758953883	1.043928906
> > s04		1117900758		1185159528	1.060165242
> > scilab	63309111		66893431	1.05661618
> > (We will send test patch on memcpy for above cases)
> 
> Is memcpy_sse2_unaligned really the right function to compare with?
> Isn't __memcpy_ssse3 used on Haswell today?
>
It should be correct one unless ifunc selection was wrong. Does
haswell have bit_Slow_BSF bit set?
> Andreas
> -- 
>  Andreas Jaeger aj@{suse.com,opensuse.org} Twitter/Identica: jaegerandi
>   SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
>    GF: Jeff Hawn,Jennifer Guild,Felix Imendörffer,HRB16746 (AG Nürnberg)
>     GPG fingerprint = 93A3 365E CE47 B889 DF7F  FED1 389A 563C C272 A126

-- 

ether leak


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]