diff options
author | psychocrypt <psychocryptHPC@gmail.com> | 2018-01-24 22:08:48 +0100 |
---|---|---|
committer | psychocrypt <psychocryptHPC@gmail.com> | 2018-01-24 22:11:47 +0100 |
commit | ac474caa8b9392881736ddaae349d4cb649683a9 (patch) | |
tree | 21e916b1ecf92ce045c670c4c9ae6cfa4f599146 /xmrstak/backend/amd/amd_gpu | |
parent | b9fb744a104cc8eceb9196a676bea2c4f0e14d51 (diff) | |
download | xmr-stak-ac474caa8b9392881736ddaae349d4cb649683a9.zip xmr-stak-ac474caa8b9392881736ddaae349d4cb649683a9.tar.gz |
remove usage of `rotate`
revert the change that the OpenCl function `rotate` is used instead of `SKEIN_ROT`
Diffstat (limited to 'xmrstak/backend/amd/amd_gpu')
-rw-r--r-- | xmrstak/backend/amd/amd_gpu/opencl/wolf-skein.cl | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/xmrstak/backend/amd/amd_gpu/opencl/wolf-skein.cl b/xmrstak/backend/amd/amd_gpu/opencl/wolf-skein.cl index e2a867d..279b652 100644 --- a/xmrstak/backend/amd/amd_gpu/opencl/wolf-skein.cl +++ b/xmrstak/backend/amd/amd_gpu/opencl/wolf-skein.cl @@ -30,10 +30,19 @@ static const __constant ulong SKEIN512_256_IV[8] = p.s7 += q; \ } while(0) +ulong SKEIN_ROT(const uint2 x, const uint y) +{ + if(y < 32) return(as_ulong(amd_bitalign(x, x.s10, 32 - y))); + else return(as_ulong(amd_bitalign(x.s10, x, 32 - (y - 32)))); +} + void SkeinMix8(ulong4 *pv0, ulong4 *pv1, const ulong4 rc) { *pv0 += *pv1; - *pv1 = rotate(*pv1, (ulong4)rc); + (*pv1).s0 = SKEIN_ROT(as_uint2((*pv1).s0), rc.s0); + (*pv1).s1 = SKEIN_ROT(as_uint2((*pv1).s1), rc.s1); + (*pv1).s2 = SKEIN_ROT(as_uint2((*pv1).s2), rc.s2); + (*pv1).s3 = SKEIN_ROT(as_uint2((*pv1).s3), rc.s3); *pv1 ^= *pv0; } |