Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20120708062821.GA28957@openwall.com>
Date: Sun, 8 Jul 2012 10:28:21 +0400
From: Solar Designer <solar@...nwall.com>
To: john-dev@...ts.openwall.com
Subject: Re: Rotate and bitselect investigation

Sayantan,

On Sun, Jul 08, 2012 at 10:51:54AM +0530, Sayantan Datta wrote:
> I have investigated the rotate and bitselct issue on 7970.

Thank you!

> Both type of rotate(manual and inbuilt opencl function) use bitalign
> instruction.  I investigated using rotate(x,(uint)30) and ((x << 30) | ((x
> ) >> 2)). Also the values loaded in the bitalign instructions are exactly
> same except they  operate on different registers. So you won't see any
> performance increase in this case.

Sounds good.

> However with bitselct the situation is different. The inbuilt function uses
> an alien bfi instruction

This is precisely what we expected. :-)

> which I couldn't find anywhere in the docs. The
> manual version uses ixor and iand.

So, any explanation why there's no measurable speedup (at least in my
tests) from using bitselect() in SHA-1's F in MSCash2?  Is there some
kind of stall, so that the reduction in instruction count doesn't help?
Or is there somehow no such reduction (e.g., an extra move is added)?

Alexander

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.