Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Sun, 8 Jul 2012 10:28:21 +0400
From: Solar Designer <>
Subject: Re: Rotate and bitselect investigation


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)?


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.