This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] Fix rawmemchr regression on bulldozer
- From: Andreas Jaeger <aj at suse dot com>
- To: OndÅej BÃlka <neleai at seznam dot cz>
- Cc: libc-alpha at sourceware dot org, Dmitrieva Liubov <liubov dot dmitrieva at gmail dot com>
- Date: Tue, 27 Aug 2013 19:03:45 +0200
- Subject: Re: [PATCH] Fix rawmemchr regression on bulldozer
- Authentication-results: sourceware.org; auth=none
- References: <20130805122624 dot GA4682 at domone dot kolej dot mff dot cuni dot cz>
On 08/05/2013 02:26 PM, OndÅej BÃlka wrote:
> Hi,
>
> We now have a huge performance regression of rawmemchr on bulldozer.
> We select __rawmemchr_sse42 which is about five times slower than
> alternative __rawmemchr_sse2. Our benchtests can capture asymptotic
> speed relatively well and their output on AMD FX(tm)-8150 is below.
>
>
> On intel a gap between __rawmemchr_sse42 and __rawmemchr_sse2 is similar
> but a bit_Prefer_PMINUB_for_stringop flag selects __rawmemchr_sse2.
>
> After this a bit_Prefer_PMINUB_for_stringop will no longer be needed
> and can be removed by separate cleanup.
>
> OK to commit?
>
> simple_rawmemchr __rawmemchr_sse42 __rawmemchr_sse2
> Length 32, alignment 0: 264 108 75
> Length 64, alignment 1: 431 193 95
> Length 32, alignment 0: 254 138 62
> Length 64, alignment 1: 431 193 69
> Length 64, alignment 0: 419 193 85
> Length 64, alignment 2: 419 177 77
> Length 64, alignment 0: 419 177 85
> Length 64, alignment 2: 419 164 69
> Length 128, alignment 0: 748 298 93
> Length 64, alignment 3: 419 164 92
> Length 128, alignment 0: 751 298 118
> Length 64, alignment 3: 422 180 59
> Length 256, alignment 0: 1407 628 131
> Length 64, alignment 4: 419 192 72
> Length 256, alignment 0: 1409 642 131
> Length 64, alignment 4: 422 192 56
> Length 512, alignment 0: 2723 1111 183
> Length 64, alignment 5: 419 193 59
> Length 512, alignment 0: 2725 1111 190
> Length 64, alignment 5: 422 193 84
> Length 1024, alignment 0: 5356 2026 417
> Length 64, alignment 6: 419 192 84
> Length 1024, alignment 0: 5359 2026 388
>
>
>
> * sysdeps/x86_64/multiarch/rawmemchr.S: Delete.
This needs changes in ./sysdeps/x86_64/multiarch/ifunc-impl-list.c as well.
Dmitrieva, could you comment on this patch, please?
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