Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date: Fri, 21 May 2010 08:15:57 +0400
From: Solar Designer <>
Subject: Re: C compiler generated SSE2 code

On Thu, May 20, 2010 at 02:22:43PM +0200, wrote:
> I tested with a handful of compilers on my core 2 computer. With all 
> compilers the fastest code was produced with DES_BS_VECTOR = 2, no 
> VECTOR34 and no MIX.

Same here.

> The following combinations did not work at all :
> DES_BS_VECTOR = 4, VECTOR34 and MIX, with gcc 4.5.0, 4.3.2 and icc 10.1. 
> Clang did work fine however.

That's weird.  All combinations work for me with gcc 4.5.0.  I've just
re-tested with the exact john-1.7.5-des-intrinsics-1.diff.gz that I posted.

BTW, there are even more combinations to try - there's also the MM
setting.  It lets you choose SSE2+MMX vs. SSE2+native.

> The best speeds were :
> Reference : Vanilla, gcc-4.5.0 : 2706K/2329K
> icc 10.1 : 2662K/2259K
> gcc 4.3.2  : 2692K/2314K
> gcc 4.5.0 : 2713K/2332K (with your inline flags)
> clang : 2763K/2363K (also with your inline flags)

On a Core i7 920 2.67 GHz with gcc 4.5.0, I am getting:

Vanilla 1.7.5 (x86-64.S code):
Many salts:     2540K c/s real, 2540K c/s virtual
Only one salt:  2192K c/s real, 2192K c/s virtual

SSE2 intrinsics (DES_BS_VECTOR = 2):
Many salts:     2620K c/s real, 2620K c/s virtual
Only one salt:  2287K c/s real, 2287K c/s virtual

This is with the exact code I posted (only x86-64.h edited).

Other settings (the #define's in x86-64.h and DES_bs_b.c) result in
speeds from 1600K to 2100K.

> What I find interesting is that clang performs so well and icc so badly. 

Oh, I'd say that all of them perform surprisingly well on this test.



Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.