|
Message-ID: <CANJ2NMPa0VkQuD8nNSTTE1uuSkyz9buk4CQbVMOnCqPQgx+CuA@mail.gmail.com> Date: Wed, 16 May 2012 16:21:22 +0800 From: myrice <qqlddg@...il.com> To: john-dev@...ts.openwall.com Subject: Re: Myrice: Weekly Report #5 On Wed, May 16, 2012 at 3:28 PM, magnum <john.magnum@...hmail.com> wrote: > > Are you having problems with swap64 only, or other things too? Now I think it is only the SWAP64. Maybe I have to change it into other forms. But from my experiment, if followings are true, I think the problem is complex and all 64bit operation will be influenced. I find problems with bit operation like: &, | and <<. I think compiler optimization does something strange. If I use two of bit operations in a sentence like: n = (a & 0xff) << 32, the result will be 0 when the operation on high 32bit of a 64bit variable. I have tried using violate variables to avoid this. Such as: violate ulong a; a &= 0xff; n = a << 32; This would be correct. If I use a for next sentence, the a will be 0 also. I suspect the AMD OpenCL compiler has some bugs with 64bit bit operation. Thanks myrice
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.